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 stackage.org to host generated Haddocks.
BSD-3-Clause licensed by Gabriel Gonzalez, Paolo Capriotti
Simpler semantics: There is only one data type (Pipe), two basic
primitives (await and yield), and only one way to compose Pipes
(>+>). In fact, (>+>) is just convenient syntax for the composition
operator in Category. Most pipes can be implemented just using the
Monad instance and composition.
Different naming conventions: Enumeratees are called Pipes, Enumerators
are Producers, and Iteratees are Consumers. Producers and Consumers
are just type synonyms for Pipes with either the input or output end
closed.
Pipes form a Category: that means that composition is associative, and
that there is an identity Pipe.
Vertical concatenation works on every Pipe: (>>), concatenates
Pipes. Since everything is a Pipe, you can use it to concatenate
Producers, Consumers, and even intermediate Pipe stages. Vertical
concatenation can be combined with composition to create elaborate
combinators, without the need of executing pipes in "passes" or resuming
partially executed pipes.
Check out Control.Pipe for a copious introduction (in the spirit of the
iterIO library), and Control.Pipe.Combinators for some basic combinators
and Pipe examples.