2008/12/26 Galchin, Vasili <vigalc...@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
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to