Permalink
Browse files

Update master

  • Loading branch information...
1 parent b7f1301 commit 5236260c978bbc361b09cf5661b6b15de87d4273 @cdsmith committed Jun 8, 2012
Showing with 23 additions and 1 deletion.
  1. +23 −1 README.md
View
@@ -1,4 +1,26 @@
my-pipes
========
-Alternative implementation of the pipes concept
+Alternative implementation of the pipes concept.
+
+The Pipe type is `Pipe a b u m r`, where:
+
+ - `a` is the input type
+ - `b` is the output type
+ - `u` is the upstream return type
+ - `m` is the base monad
+ - `r` is the return type
+
+The primitive stream operations are:
+
+ - `tryAwait` waits for upstream `yield` or termination
+ - `yield` yields a value to downstream
+
+Exceptions and finalization are to be decided.
+
+There is a separate `PutbackPipe` type for the purpose of preserving leftover data. It does
+not form a category, and instead provides a specialized composition operator, `>++>`, which
+only permits composition on the left end of a pipeline.
+
+Note that `simulatePipe` is the fundamental abstraction for running a `Pipe`. The more
+widely known `runPipe` is provided as a specialization.

0 comments on commit 5236260

Please sign in to comment.