Yes, it is explicitly stated what type should be CHA.ByteString. This in itself does not require any conversion, it is just a hint to the compiler (and / or reader) that resthis type should be.
These types of local annotations are necessary when the value is obtained from a function with a polymorphic result and is only consumed by functions with a polymorphic argument. A simple example:
f :: Int -> Int
f = fromEnum . toEnum
toEnum - , Char. , fromEnum ... , , !
No instance for (Enum a0) arising from a use of ‘fromEnum’
The type variable ‘a0’ is ambiguous
Note: there are several potential instances:
instance Integral a => Enum (GHC.Real.Ratio a)
instance Enum Ordering
instance Enum Integer
...plus 7 others
In the first argument of ‘(.)’, namely ‘fromEnum’
In the expression: fromEnum . toEnum
In an equation for ‘f’: f = fromEnum . toEnum
Haskell , , fromIntegral . round Integer. ByteString , , responseBody, , CHA.ByteString, , .