The elerea package

[Tags:bsd3, library]

Elerea (Eventless reactivity) is a tiny discrete time FRP implementation without the notion of event-based switching and sampling, with first-class signals (time-varying values). Reactivity is provided through various higher-order constructs that also allow the user to work with arbitrary time-varying structures containing live signals. Signals have precise and simple denotational semantics.

Stateful signals can be safely generated at any time through a monadic interface, while stateless combinators can be used in a purely applicative style. Elerea signals can be defined recursively, and external input is trivial to attach. The library comes in three major variants:

This is a minimal library that defines only some basic primitives, and you are advised to install elerea-examples as well to get an idea how to build non-trivial systems with it. The examples are separated in order to minimise the dependencies of the core library. The dow package contains a full game built on top of the simple variant.

The basic idea of the implementation is described in the WFLP 2010 paper Efficient and Compositional Higher-Order Streams (

Additional contributions: Takano Akio


Versions 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 1.0.0, 1.1.0, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.4.0, 2.5.0, 2.6.0, 2.7.0,,, 2.8.0, 2.9.0
Change log CHANGES
Dependencies base (==4.*), containers [details]
License BSD3
Copyright (c) 2009-2012, Patai Gergely
Author Patai Gergely
Maintainer Patai Gergely (
Stability experimental
Category reactivity, FRP
Uploaded Tue Jan 31 20:32:30 UTC 2012 by GergelyPatai
Distributions LTSHaskell:2.9.0, NixOS:2.9.0, Stackage:2.9.0, Tumbleweed:2.9.0
Downloads 7292 total (53 in the last 30 days)
1 []
Status Docs uploaded by user
Build status unknown [no reports yet]




Maintainer's Corner

For package maintainers and hackage trustees