Representation of reactive behaviors
Reactive behaviors. They can be understood in terms of a simple
model (denotational semantics) as functions of time, namely
BehaviorG t a -> (t -> a).
The semantics of
BehaviorG instances are given by corresponding
instances for the semantic model (functions). See
at (fmap f r) == fmap f (at r), i.e.,
fmap f r.
att == f (r
at (pure a) == pure a, and
at (s <*> r) == at s <*> at t. That is,
pure a, and
att == a
(s <*> r).
att == (s
at (return a) == return a, and
at (join rr) == join (at . at rr). That is,
return a, and
att == a
join rr. As always,
att == (rr
(r >>= f) == join (fmap f r).
at (r >>= f) == at r >>= at . f.
Monoid: a typical lifted monoid. If
ois a monoid, then
Reactive ois a monoid, with
mempty == pure mempty, and
mappend == liftA2 mappend. That is,
att == mempty
att == (r