Name: pipes
Version: 2.3.0
Cabal-Version: >=1.14.0
Build-Type: Simple
License: BSD3
License-File: LICENSE
Copyright: 2012 Gabriel Gonzalez
Author: Gabriel Gonzalez
Maintainer: Gabriel439@gmail.com
Stability: Experimental
Bug-Reports: https://github.com/Gabriel439/Haskell-Pipes-Library/issues
Synopsis: Compositional pipelines
Description:
\"Iteratees done right\". This library implements
iteratees\/enumerators\/enumeratees simply and elegantly, using different
naming conventions.
.
Advantages over traditional iteratee implementations:
.
* /Simpler semantics/: There is only one data type ('Pipe'), two primitives
('await' and 'yield'), and only one way to compose 'Pipe's ('.'). In fact,
this library implements its entire behavior using its 'Monad' and 'Category'
instances and enforces their laws strictly!
.
* /Clearer naming conventions/: Enumeratees are called 'Pipe's, Enumerators
are 'Producer's, and Iteratees are 'Consumer's. 'Producer's and 'Consumer's
are just type synonyms for 'Pipe's with either the input or output end
closed.
.
* /Pipes are Categories/: You compose them using ordinary composition.
.
* /Intuitive/: Pipe composition is easier to reason about because it is a true
'Category'. Composition works seamlessly and you don't have to worry about
restarting iteratees, feeding new input, etc. \"It just works\".
.
* /"Vertical" concatenation works flawlessly on everything/: ('>>')
concatenates 'Pipe's, but since everything is a 'Pipe', you can use it to
concatenate 'Producer's, 'Consumer's, and even intermediate 'Pipe' stages.
Vertical Concatenation always works the way you expect, picking up where the
previous 'Pipe' left off.
.
* /Bidirectionality/: The library now provides a bidirectional 'Pipe' type,
called a 'Proxy'.
.
Check out "Control.Pipe.Tutorial" for a copious introductory tutorial and
"Control.Pipe" for the actual implementation. "Control.Proxy.Tutorial"
introduces bidirectional iteratees that are backwards-compatible with 'Pipe's
and "Control.Proxy" provides the implementation.
Category: Control, Enumerator
Tested-With: GHC ==7.4.1
Source-Repository head
Type: git
Location: https://github.com/Gabriel439/Haskell-Pipes-Library
Library
Build-Depends:
base >= 4 && < 5,
index-core,
transformers,
transformers-free,
void
Exposed-Modules:
Control.Frame,
Control.Frame.Tutorial,
Control.IMonad.Trans.Free,
Control.Proxy,
Control.Proxy.Tutorial,
Control.Pipe,
Control.Pipe.Tutorial
GHC-Options: -O2
Default-Language: Haskell2010