Mon Aug 17 17:06:18 EDT 2015
What does it mean?
class Monad m => Feedback m s where
feedback :: s -> (s -> m (s, t)) -> m t
This isomorphic to
Sig m t -> m t
So what it says is that the compilation monad can turn a signal into a
This makes absolutely no sense, except that it "shifts the universe",
meaning the base types are no longer scalars, but signals.
What happens when this gets applied multiple times? Also doesn't make
Nonsense. It needs to be tagged somehow.
If it is tagged as (m l t) then some things are needed to manipulate l.
Go for another blind run...
Whatever I try to change, there is always something that messes things
up in a way I that seems impossible to solve..
Some more questions:
- why is feedback meaningful for Code, but not for Eval?
- why is unfold meaningful for Eval but not for Code?
Maybe the trick is that Code's implicit time-dependence seeps through?
The feedback equation really is about s and t being streams..
So let's try to write a semantics for that in Eval.