[Haskell-cafe] Stream processing

Gabriel Gonzalez gabriel439 at gmail.com
Sat May 11 21:15:55 CEST 2013


On 05/11/2013 11:04 AM, Michael Snoyman wrote:
> It's quite old at this point, but you may be interested in reading the 
> initial motivations for creating conduit when the iteratee pattern 
> (and enumerator library in particular) already existed:
>
> https://github.com/snoyberg/conduit/blob/master/README.md#general-goal
>
> I would say the only real component missing from your list is being 
> able to structure significantly more complicated control flows, such 
> as the use case of combining a web server and web client into a web 
> proxy. That was probably the example which finally pushed me to start 
> thinking seriously about an enumerator replacement. In conduit, this 
> use case is addressed by connect-and-resume, which essentially allows 
> you to escape the inversion of control normally introduced by the 
> conduit pattern.
>
Speaking of escaping inversion of control, I'm going to take a moment to 
shamelessly plug this post of mine showing that you can escape the pipe 
monad using a trick uncannily similar to `io-streams`:

http://www.haskellforall.com/2013/04/pipes-and-io-streams.html

It's not equivalent to `conduit`'s connect and resume, though, which is 
very different.



More information about the Haskell-Cafe mailing list