_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