Tue Aug 11 12:07:43 EDT 2015
Signals and connectors.
Thing about it this way: the problem is composing signals, and signal
connectors ("scalar" monadic programs).
It is easy when all signals are lifted to be inputs of the scalar
monadic program, then lift the program over the signals.
What is difficult is to express the program in terms of signals as
opposed to scalars.
It seems as if (Sig m) should be the Monad, but it isn't. Can't
construct Join for (Sig m (Sig m t)).
Or can we? What would it _mean_ ?
Simpler to understand: what would bind mean?
Sig m a -> (f -> Sig m b) -> Sig m b
This needs a different monad interface, one that wraps signals, so the
Bind would be:
m' (Sig m a) -> f -> m' (Sig m b) -> m' (Sig m b)
Then the behavior of this monad is to just "tuck underneath" the other
And what would m' look like? Is this another continuation monad?