Hello, I would like to announce the release of iteratee-0.2.1, a major update to the iteratee library. This library provides types and functions for performing enumerator/iteratee based I/O operations in Haskell, as described by Oleg at http://okmij.org/ftp/Streams.html#iteratee. This library is intended to be used for incremental, strict I/O and provides high performance and composability.
The 0.2 version is a large redesign from the initial release, with many breaking changes. A major new feature is support for resumable exceptions. The interface has been greatly simplified, including the following: -Iteratees that previously returned a result of "Maybe a" will now usually have a result of "a", making it much simpler to combine multiple iteratees. The "bindm" combinator is no longer necessary. Failed operations should now result in a resumable exception. User-defined iteratees may still have results of "Maybe a" of course. -The types IterateeG and IterateeGM have been unified; IterateeGM is no longer necessary or supplied. -The combinators (>>==) and (==<<) are no longer necessary or supplied; the same functionality is provided by (>>=) and ($). -The new combinator "joinIM" simplifies composing multiple enumerations in certain monadic contexts. -The StreamChunk class now depends upon Monoid and ListLike, and defaults are provided for all functions, simplifying the work necessary to create a new StreamChunk instance (although performance can be greatly improved by providing certain custom implementations). -The library depends upon transformers instead of mtl for monadic composition. I made this change because it looks like mtl will be deprecated from HPC in the near future, however it could be reverted if necessary. The only difference between 0.2 and 0.2.1 is that I removed a section on building the test executable from the .cabal file so that test frameworks wouldn't be required of all users. All necessary files for testing are supplied with 0.2.1, they just have to be built manually. The process of updating earlier code to work with this version can be more-or-less straightforward, depending upon style and the particular functionality accessed. I would be happy to provide assistance if anyone is in this situation. Thanks to the following individuals for contributing code to this release: Oleg Kiselyov Bas van Dijk Paulo Tanimoto Thanks to Johan Tibell for comments and ongoing support. Cheers, John Lato _______________________________________________ Haskell mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell
