[Haskell-cafe] The Proliferation of List-Like Types

Jules Bean jules at jellybean.co.uk
Fri Feb 22 02:18:03 EST 2008

Thomas Schilling wrote:
> On 21 feb 2008, at 18.35, Johan Tibell wrote:
>> I switched from lazy bytestrings to a left fold in my networking code
>> after reading what Oleg wrote about streams vs folds. No problems with
>> handles, etc. anymore.
> Do you fold over chunks?  Can you continue to use Parsek or other 
> utilities that need a stream-abstraction, and if so, how do you handle 
> the end of a chunk.  This is the kind of callback interface where lazy 
> evaluation really abstracts things nicely.

You can't call a stream-abstraction utility using a left-fold-enumerator 
without cheating (unsafeInterleave), because the stream-abstraction is 
incompatible (and leaky! even though it is convenient).

You can convert in the other direction fine.

Chunk are no problem, and convertible: you can build an element fold 
from a chunk fold, and a chunk fold from an element fold (as long as 
there is an 'end-of-input' marker).


More information about the Haskell-Cafe mailing list