iterate -containers -bytestring
iterate f x returns an infinite list of repeated applications of f to x:
> iterate f x == [x, f x, f (f x), ...]
The Iteratee monad provides strict, safe, and functional I/O. In addition to pure Iteratee processors, file IO and combinator functions are provided. See Data.Iteratee for full documentation.
Enumeratees for compressing and decompressing streams
The Iteratee monad provides strict, safe, and functional I/O. In addition to pure Iteratee processors, file IO and combinator functions are provided.
Package providing instances of Stream in Iteratee monad.
Enumerators and iteratees which read from/write to STM channels. This allows for processes with dedicated IO threads.
An adapter to convert attoparsec Parsers into blazing-fast Iteratees
Write blog posts in Markdown format, then use BlogLiterately to do syntax highlighting, format ghci sessions, and upload to any blog supporting the metaWeblog API (such as Wordpress): http://codex.wordpress.org/XML-RPC_MetaWeblog_API.
To get started, use the provided executable BlogLiterately; see http://byorgey.wordpress.com/blogliterately/ for complete documentation.
To make further customization possible, the internals of the executable are made available as a library. In particular, it is easy to create your own executable which adds extra custom transformations; see Text.BlogLiterately.Run.
A plugin for BlogLiterately (http://hackage.haskell.org/package/BlogLiterately) which turns inline diagrams code into images. This library also provides an executable, BlogLiteratelyD, providing a standard instance of BlogLiterately extended with support for inline diagrams code. For most users it should suffice to simply use BlogLiteratelyD in place of BlogLiterately.
To use it, include code blocks with the dia or dia-def class (using pandoc's special extended Markdown syntax (http://johnmacfarlane.net/pandoc/demo/example9/pandocs-markdown.html), or BlogLiterately's extended syntax for tagged code blocks (http://byorgey.wordpress.com/blogliterately/)), like so:
> -- This block produces no output but its
> -- declarations will be in scope in all the
> -- rest of the diagram blocks.
> gSq = square 1 # fc green
> NOTE: Square brackets below should be replaced
> by curly braces. Haddock chokes on curly
> Here is a green square:
> ```[.dia width='200']
> dia = gSq
> Green squares like `gSq`[.dia height='16']
> and blue circles like `circle 1 # fc blue`[.dia height='16']
> are extremely important.
Note that attributes like width and height can also be specified, but be sure to put the numbers in quotes or else they will not parse properly.
Running this through BlogLiteratelyD (after replacing square brackets with curly braces) should result in HTML that looks something like this:
Tag "http://projects.haskell.org/diagrams/hosted/BLD-post-result.png</a" [Char '>',Char '\n',Char '\n',Char 'V',Char 'e',Char 'r',Char 's',Char 'i',Char 'o',Char 'n',Char ' ',Char '0',Char '.',Char '1',Char '.',Char '3',Char '.',Char '1',Char '\n']
This package acts as a bidirectional bridge between two monad transformers: the Data.Iteratee.Base.Iteratee in the iteratee package, and the Control.Monad.Coroutine.Coroutine in the monad-coroutine package.
This package provides chunked XML parsing using iteratees. It is especially suited to implementing XML-based socket protocols, but is useful wherever lazy parsing is needed on production systems where you can't tolerate the problems that come with Haskell's lazy I/O.
The XML is presented as a lazy tree, and is processed by a handler implemented using a monad transformer called XMLT. The resulting monad is suspended whenever it tries to read a part of the tree that hasn't been parsed yet, and continued as soon as it is available. The resulting code looks and functions very much as if you were using lazy I/O, only without the associated problems. Your handlers can have effects, yet they come out in quite a functional style.
Background: Haskell's lazy I/O can be problematic in some applications because it doesn't handle I/O errors properly, and you can't predict when it will clean up its resources, which could result in file handles running out.
Iteratee interface to SamTools library
This packages provides iteratee enumerators for the usb package.