Thu Aug 25 18:36:51 CEST 2011

Stream transformers

Most of the posts have been about these types representing
input-dependent streams, where the stream is represented as a
recurrence relation:

     (s, i -> s -> (s, o))          (1)

     i -> (s, s -> (s, o))          (2)

     (s, s -> (s, i -> o))          (3)

The central question is, does i influence the the state transition
function (1), with one i for each update, does a single i produce an
entire stream (2), which needs some kind of stream-of-streams
flattening operation, or is the state independent of the input (3).
This is Arrow(1), Monad(2) and Applicative(3).


[1] http://www.mail-archive.com/haskell-cafe@haskell.org/msg92702.html