Not in scope: `Data.ByteString.join'<br><br><br>when <br><br> Data.ByteString.join $<br> encode (buildHeader ss) -- ByteString<br> -- []<br> (map encode (buildEntries (sequenceListExtract ss))) -- [ByteString]<br>
<br>??<br><br>Thanks, guys<br><br><br><br><div class="gmail_quote">On Sat, Dec 27, 2008 at 3:13 AM, Eugene Kirpichov <span dir="ltr"><<a href="mailto:ekirpichov@gmail.com">ekirpichov@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I think Luke meant that you forgot to qualify the import for join, and<br>
the compiler guessed that you are meaning the monad one, thus the<br>
error.<br>
<br>
2008/12/27 Galchin, Vasili <<a href="mailto:vigalchin@gmail.com">vigalchin@gmail.com</a>>:<br>
<div><div></div><div class="Wj3C7c">> Hi Luke,<br>
><br>
> join :: ByteString -> [ByteString] -> ByteString ???<br>
><br>
> Vasili<br>
><br>
> On Sat, Dec 27, 2008 at 1:58 AM, Luke Palmer <<a href="mailto:lrpalmer@gmail.com">lrpalmer@gmail.com</a>> wrote:<br>
>><br>
>> 2008/12/26 Galchin, Vasili <<a href="mailto:vigalchin@gmail.com">vigalchin@gmail.com</a>><br>
>>><br>
>>> Hello,<br>
>>><br>
>>> I have a ByteString -> [ByteString] -> ByteString situation, i.e.<br>
>>> concatenation .....<br>
>>><br>
>>><br>
>>> -- marshall into ByteString representation<br>
>>> join<br>
>>> (encode (buildHeader<br>
>>> ss)) -- ByteString<br>
>>> (map encode (buildEntries (sequenceListExtract<br>
>>> ss))) -- [ByteString]<br>
>>><br>
>>><br>
>>> I get the following typecheck error which is vexing me ....<br>
>>><br>
>>> Couldn't match expected type `t -> t -> B.ByteString'<br>
>>> against inferred type `B.ByteString'<br>
>>><br>
>>> ???<br>
>><br>
>> join is not a function in Data.ByteString. By the error I'm guessing<br>
>> you're getting the join from Control.Monad, instantiated to (->).<br>
>> You are looking for "concat"; i.e.<br>
>> concat $<br>
>> encode (buildHeader ss) :<br>
>> -- ByteString<br>
>> map encode (buildEntries (sequenceListExtract ss))<br>
>> -- [ByteString]<br>
>><br>
>> (Control.Monad.join does end up meaning"concat" when working on lists of<br>
>> lists, but it does not generalize to lists of other things).<br>
>> Luke<br>
><br>
</div></div>> _______________________________________________<br>
> Haskell-Cafe mailing list<br>
> <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
> <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
><br>
><br>
</blockquote></div><br>