Iteratee-based IO with pipe operators

Latest on Hackage:0.2.2

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

BSD-3-Clause licensed by David Mazieres, Deian Stefan, Amit Levy

Iteratee-based IO is an alternative to lazy IO that offers better error handling, referential transparency, and convenient composition of protocol layers or parsers. This package provides iteratees based around pipe operators for hooking together application components and directing data flow. New users should see the tutorial in the Data.IterIO module documentation. Highlights of the library include:

  • Heavy emphasis on ease of use, ease of learning, and uniformity of mechanism.

  • Copious documentation.

  • Consistent EOF and error handling to avoid resource leaks and other issues in corner cases.

  • A set of iteratee parsing combinators providing LL(*) parsing while generally not consuming large amounts of memory for backtracking.

  • Seamless integration with attoparsec for LL(1) parsing.

See Data.IterIO for a discussion of the differences between iterIO and the two previous iteratee implementations (iteratee and enumerator).