Reactive is a simple foundation for programming reactive systems
functionally. Like Fran/FRP, it has a notions of (reactive) behaviors and
events. Unlike most previous FRP implementations, Reactive has a hybrid
demand/data-driven implementation, as described in the paper "Push-pull
functional reactive programming", http://conal.net/papers/push-pull-frp/.
This version of Reactive has some serious bugs that show up particularly
with some uses of the Event monad. Some problems have been due to bugs
in the GHC run-time support for concurrency. I do not know whether the
remaining problems in Reactive are still more subtle RTS issues, or
some subtle laziness bugs in Reactive. Help probing the remaining
difficulties is most welcome.
Import FRP.Reactive
for FRP client apps. To make a Reactive adapter for an
imperative library, import FRP.Reactive.LegacyAdapters
.
Please see the project wiki page: http://haskell.org/haskellwiki/reactive
© 2007-2009 by Conal Elliott; GNU AGPLv3 license (see COPYING).
I am not thrilled with GPL, and I doubt I'll stay with it for long.
If you would like different terms, please talk to me.
With contributions from: Robin Green, Thomas Davie, Luke Palmer,
David Sankel, Jules Bean, Creighton Hogg, Chuan-kai Lin, and Richard
Smith. Please let me know if I've forgotten to list you.