Grapefruit is a library for Functional Reactive Programming (FRP) with a focus on user interfaces. FRP makes it possible to implement reactive and interactive systems in a declarative style. To learn more about FRP, have a look at http://haskell.org/haskellwiki/Functional_Reactive_Programming.

This package contains general user interface support. To make use of it, it has to be complemented by a UI backend. It is possible to have different UI backends implementing the same general interface on top of different UI toolkits. At the moment, the only backend is one based on GTK+. This is provided by the grapefruit-ui-gtk package.