[Haskell-cafe] ANNOUNCE: first Grapefruit release

Wolfgang Jeltsch g9ks157k at acme.softbase.org
Sat Feb 14 11:19:09 EST 2009

Dear friends of Haskell and Functional Reactive Programming,

its my pleasure to announce the first official release of Grapefruit, a 
library for Functional Reactive Programming (FRP) with a focus on user 

With Grapefruit, you can implement reactive and interactive systems in a 
declarative style. User interfaces are described as networks of communicating 
widgets and windows. Communication is done via different kinds of signals 
which describe temporal behavior.

Grapefruit consists of five packages with several interesting features:

grapefruit-frp: Functional Reactive Programming core

   * The FRP implementation uses a hybrid push/pull-based approach.

    * Signals can be memoized by binding them to variables – like ordinary
    data structures.

    * Merging of event streams combines simultaneous events properly.

    * Signals cannot behave differently by starting them at different times.
    The type system is used to enforce proper aging of signals.

grapefruit-records: A record system for Functional Reactive Programming

    * Input records can specify fields as being required or optional.

    * Uninteresting output fields can be ignored. The set of interesting
    fields is specified by pattern matching.

grapefruit-ui: Declarative user interface programming

    * The interface for UI programming is platform-independent and can be
    implemented on top of different UI toolkits.

    * A concrete implementation can be selected at compile time or runtime.

grapefruit-ui-gtk: GTK+-based implementation of the general UI interface

    * Gtk2Hs is used internally.

grapefruit-examples: examples demonstrating features of Grapefruit

    * Circular communication and switching are demonstrated.

Support for the following is planned for the future:

    * signals with incremental updates

    * user interfaces with changing structure

    * more kinds of UI components

    * graphical animations

Further information about Grapefruit is available on its wiki page at 

If you have questions, applause or criticism, please get in touch with me.

Wolfgang Jeltsch
Principal Grapefruit developer

More information about the Haskell-Cafe mailing list