The reactive package

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.

Maintainer's Corner

Readme for reactive-0.11.2

_Reactive_ [1] is a simple foundation for programming reactive systems
functionally. Like Fran/FRP, it has a notions of (reactive) behaviors and
events. Like DataDriven [2], Reactive has a data-driven implementation.
The inspiration for Reactive was Mike Sperber's Lula [3] implementation of
FRP. Mike used blocking threads, which I had never considered for FRP.
While playing with the idea, I realized that I could give a very elegant
and efficient solution to caching, which DataDriven doesn't do. (For an
application "f <*> a" of a varying function to a varying argument, caching
remembers the latest function to apply to a new argument and the last
argument to which to apply a new function.)
The theory and implementation of Reactive are described in the paper "Simply
efficient functional reactivity" [4].
Note that cabal[5], version 1.4.0.1 or greater is required for installation.
You can configure, build, and install all in the usual way with Cabal
commands.
runhaskell Setup.lhs configure
runhaskell Setup.lhs build
runhaskell Setup.lhs install
References:
[1] http://haskell.org/haskellwiki/Reactive
[2] http://haskell.org/haskellwiki/DataDriven
[3] http://www-pu.informatik.uni-tuebingen.de/lula/deutsch/publications.html
[4] http://conal.net/papers/simply-reactive
[5] http://www.haskell.org/cabal/download.html