1 What is it?

FRP offers an elegant and concise way to express interactive programs such as graphical user interfaces, animations, computer music or robot controllers. Thus, the reactive-banana library promises to avoid the spagethetti code commonly used in traditional GUI technologies.

The specific goal of the library is to provide a solid foundation.

Users can finally use FRP to program graphical user interfaces as the library can be hooked into any existing event-based framework like wxHaskell or Gtk2Hs. A plethora of example code helps with getting started. Your can mix FRP and imperative style. If you don't know how to express functionality in terms of FRP, just temporarily switch back to the imperative style.

Programmers interested in implementing FRP will have a reference for a simple semantics with a working implementation. We stay close to the semantics pioneered by Conal Elliott.

It features an efficient implementation. No more spooky time leaks, predicting space & time usage should be straightforward.