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.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to