[Haskell-cafe] ByteString typechecking issues....

Luke Palmer lrpalmer at gmail.com
Sat Dec 27 02:58:22 EST 2008


2008/12/26 Galchin, Vasili <vigalchin at gmail.com>

> Hello,
>
>       I have a ByteString -> [ByteString] -> ByteString situation, i.e.
> concatenation .....
>
>
>                   -- marshall into ByteString representation
>                    join
>                       (encode (buildHeader ss))
> -- ByteString
>                       (map encode (buildEntries (sequenceListExtract ss)))
> -- [ByteString]
>
>
> I get the following typecheck error which is vexing me ....
>
>     Couldn't match expected type `t -> t -> B.ByteString'
>            against inferred type `B.ByteString'
>
> ???


join is not a function in Data.ByteString.  By the error I'm guessing you're
getting the join from Control.Monad, instantiated to (->).

You are looking for "concat"; i.e.

                   concat $
                      encode (buildHeader ss) :
-- ByteString
                      map encode (buildEntries (sequenceListExtract ss))  --
[ByteString]

(Control.Monad.join does end up meaning"concat" when working on lists of
lists, but it does not generalize to lists of other things).

Luke
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20081227/f6a6f3d1/attachment.htm


More information about the Haskell-Cafe mailing list