[Haskell-cafe] ANNOUNCE: enumerator, an alternative iteratee package

John Lato jwlato at gmail.com
Thu Aug 19 09:39:33 EDT 2010

Congratulations on this release.  I notice that enumerator doesn't use any
extensions, and thus should be easier to use with jhc and other Haskell
compilers.  This is something I would have liked to support with iteratee,
but couldn't due to conflicting design goals.

I'd also like to point out that the Tiff and Wave modules of iteratee are
primarily meant as examples.  The Wave module at least is far too slow to
actually use for anything.


> From: John Millikin <jmillikin at gmail.com>
> Most of you have probably read Oleg's essays on using left-fold
> enumerators for incremental IO. In short, by encapsulating monadic
> left-folds in an "Iteratee" type, incremental pure processing is
> possible without using lazy IO. Sources to read:
> Oleg: Streams and Iteratees < http://okmij.org/ftp/Streams.html >
> Magnus Therning: Trying to work out iteratees <
> http://therning.org/magnus/archives/735 >
> cdsmith: Iteratees Step By Step (Part 1) <
> http://cdsmith.wordpress.com/2010/05/23/iteratees-step-by-step-part-1/
> >
> John Millikin (me): Understanding Iteratees <
> http://ianen.org/articles/understanding-iteratees/ >
> Currently, the primary package for left-fold enumerators is John
> Lato's "iteratee". It is based on Oleg's original code, extended to
> support various forms of containers, platform-specific IO, and codecs
> for the WAV and TIFF formats.
> While I appreciate Mr. Lato's development of the package, I find it
> far too large, and its documentation too sparse, to effectively use.
> To correct this, I've written the "enumerator" package. It is also
> derived from Oleg's IterateeM.hs , but with a simplified API and
> significantly reduced dependency list.
> Hackage entry: http://hackage.haskell.org/package/enumerator
> Haddock docs: http://ianen.org/haskell/enumerator/api-docs/
> Source code (literate PDF):
> http://ianen.org/haskell/enumerator/enumerator.pdf
> darcs get http://ianen.org/haskell/enumerator/
> Additionally, I've included examples of using enumerators to implement
> simplified versions of the "cat" and "wc" utilities. These should
> serve as a useful starting point for anybody who wants to use
> enumerators in their own code:
> http://patch-tag.com/r/jmillikin/enumerator/snapshot/current/content/pretty/Examples/cat.hs
> http://patch-tag.com/r/jmillikin/enumerator/snapshot/current/content/pretty/Examples/wc.hs
> There are already a few libraries using the existing "iteratee"
> package (snap, attoparsec-iteratee, hexpat-iteratee); I am very
> interested in advice from the authors of these libraries. In
> particular, are any of the removed features (ListLike,
> WrappedByteString, seeking) something your libraries depend on? Are
> there any useful combinators you'd like to see included?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20100819/8012bc3e/attachment.html

More information about the Haskell-Cafe mailing list