Package Info


A minimalistic FRP 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:

  • Simple: signals are plain discrete streams isomorphic to functions over

natural numbers;

  • Param: adds a globally accessible input signal for convenience;

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.

License: BSD-3-Clause



Package Version Update ID Released Package Hub Version Platforms Subpackages
2.9.0-bp150.2.4 info GA Release 2018-08-01 15
  • AArch64
  • ghc-elerea
  • ghc-elerea-devel
2.9.0-bp150.2.7 info GA Release 2018-07-31 15
  • ppc64le
  • ghc-elerea
  • ghc-elerea-devel
2.9.0-bp150.2.6 info GA Release 2018-07-30 15
  • x86-64
  • ghc-elerea
  • ghc-elerea-devel