Thu Aug 25 18:36:51 CEST 2011
Most of the posts have been about these types representing
input-dependent streams, where the stream is represented as a
(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).
These are VERY DIFFERENT.