Sat Aug 15 20:22:24 EDT 2015
Feedback does produce "infinite lists"
Everything will be lifted to time.
So Feedback really is a fold.
In fact,  could be used as a phantom type for temporal values in
Code as well.
Let's give this a try.
Trouble is that it's outside of r.
Maybe Sig needs r?
Trouble with that was defining functor.
Quick try brings up all sorts of issues when adding another type
feedback :: s -> (s -> m (s, t)) -> m (l t)
But it does indicate that this might be list of representations
instead of representation of list.
Anyway: making it explicit is not good.
I guess it's time to deal with the core confusion:
is it a scalar or a stream?
The way around it is the same as for RAI: everything is a stream.
But it Haskell the jump/lift needs to be done somewhere.
And that is at Feedback.
feedback :: s -> (s -> m (s, t)) -> m t'
where t -> t'
r a -> r (l a)
I've been sloppy with (r a, r b) and r (a, b), so maybe this needs to
be cleared up first? Doesn't seem so, as meta/target flexibility is
So, problem: r [a] would actually work, but needs 'r' inside
everything (Feedback and Signal) and this interferes with a lot.
So maybe try that first?
EDIT: If r is a functor / applicative, then this is actually not that