sodium: Sodium Reactive Programming (FRP) System

[ bsd3, frp, library ] [ Propose Tags ]

A general purpose Reactive Programming (FRP) system. This is part of a project to implement reactive libraries with similar interfaces across a range of programming languages at

  • Goals include simplicity and completeness.

  • Applicative style: Event implements Functor and Behaviour implements Applicative.

  • Instead of the common approach where inputs are fed into the front of a monolithic 'reactimate', Sodium allows you to push inputs in from scattered places in IO.

  • Integration with IO: Extensible to provide lots of scope for lifting IO into FRP logic.

  • Push-based imperative implementation.

See the examples directory for test cases and examples.


  • - Fix some value recursion deadlocks and improve docs;

  • - Add mergeWith, make cross asynchronous;

  • - API revamp to remove an excess type variable. Parallelism stuff to be rethought;

  • - Improved tests cases + add Freecell example, API tweaks;

  • - Internal improvements;

  • - Fix multiple memory leaks;

  • 0.6 - Minor API changes, particular with accum;

  • - ghc-7.8 compatibility;

  • - Fix memory leak - see memory-test-8 & memory-test-8a;

  • - Add split primitive.

  • - Add executeIO primitive.

  • - Rename changes to updates. Rename values to value.

  • - Add Monoid instance to Event - thanks Finlay Thompson.

  • - Fix finalizer issue that caused breakage in ghc-7.8 - thanks Luite Stegeman.

  • - Second attempt.

  • - Make merge left-biased, like Reactive Banana.

  • - Fix regression when using in ghc-7.8: prevent keepAlive from being GC'd early

  • - Thank you Samuel Gélineau. Fix breakage in


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,,,,,, 0.6,,,,,,,,,,,
Dependencies base (>= && <, containers (>= && <, mtl (>= && < [details]
License BSD-3-Clause
Copyright (c) Stephen Blackheath 2012-2013
Author Stephen Blackheath
Maintainer Stephen Blackheath <>
Category FRP
Source repo head: git clone
Uploaded by StephenBlackheath at 2014-12-30T01:02:42Z
Reverse Dependencies 5 direct, 1 indirect [details]
Downloads 15646 total (21 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2014-12-30 [all 1 reports]