Not in scope: `Data.ByteString.join'
when
Data.ByteString.join $
encode (buildHeader ss) -- ByteString
-- []
(map encode (buildEntries (sequenceListExtract ss))) -- [ByteString]
??
Thanks, guys
I think Luke meant that you forgot to qualify the import for join, and
the compiler guessed that you are meaning the monad one, thus the
error.
2008/12/27 Galchin, Vasili <vigalchin@gmail.com>:
> _______________________________________________> Hi Luke,
>
> join :: ByteString -> [ByteString] -> ByteString ???
>
> Vasili
>
> On Sat, Dec 27, 2008 at 1:58 AM, Luke Palmer <lrpalmer@gmail.com> wrote:
>>
>> 2008/12/26 Galchin, Vasili <vigalchin@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
>
>