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 two 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, Mitsutoshi Aoe


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, transformers, transformers-base [details]
License BSD3
Copyright (c) 2009-2012, Patai Gergely
Author Patai Gergely
Maintainer Patai Gergely (
Category reactivity, FRP
Uploaded Sun Jun 19 14:31:07 UTC 2016 by GergelyPatai
Distributions LTSHaskell:2.9.0, NixOS:2.9.0, Stackage:2.9.0, Tumbleweed:2.9.0
Downloads 7893 total (123 in the last 30 days)
1 []
Status Docs available [build log]
Last success reported on 2016-06-19 [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees