pipes core vs pipes
Clone this wiki locally
pipes-core is a fork of the original pipes package by Gabriel Gonzalez, originated from its 1.0 release.
Differences from pipes-2.1
Pipeis a regular (non-indexed) monad.
- Pipes don't have an
awaitprimitive anymore. You need to either handle the case when the upstream pipe terminates explicitly (using
awaitE), or use
- New types
PipeL(for automatic handling of leftovers) and
PipeD(for automatic handling of termination).
- Full exception safety and exception-handling primitives. Pipes have been
finallyprimitives, which allow you to recover from exceptions and ensure finalization of resources within the
Pipemonad. There's no more need to use resource-simple or monadic regions together with Pipes.
- Multi-channel pipes. This is a generalization of Arrows using sums instead of pairs for contexts. We provide a number of combinators that allow you to combine Pipes in much the same way as Arrows, although there is not unfortunately an alternative for the Arrow syntax.