Sun Jul 19 22:00:32 EDT 2015
This is a problem of levels
Obviously... multi-level programming.
However it is easy to get confused about not properly separating
levels. The morphisms are easily seen as same.
So let's start here:
- (s,i) -> (s,o) is not an Arrow
- A generator of a (s,i) -> (s,o) can be an Arrow
This is similar to Staapl: programs are stateful, but the generator is
functional. Also corresponds to thinking of a monad as the generator
of a stateful program:
There's a level thing. The level thing is key!
So let's build it. What does a SSM constructor look like?
Problem: why are there no constraints on the kind of function you can
lift? Because this is about structure: *any* pure function can be
inserted inside the network. The constraints on functions just comes
from the constraints on the type of the composotion maybe?