essence-of-live-coding is a general purpose and type safe live coding framework.

You can run programs in it, and edit, recompile and reload them while they're running. Internally, the state of the live program is automatically migrated when performing hot code swap.

The library also offers an easy to use FRP interface. It is parametrized by its side effects, separates data flow cleanly from control flow, and allows to develop live programs from reusable, modular components. There are also useful utilities for debugging and quickchecking.


Revision history for essence-of-live-coding


  • Add changes
  • Add support for GHC 9.0.2


  • Refactored GHCi support
  • Add liveMain
  • Add exception monad for live programs
  • Improved some haddocks


  • Extended testing utilities
  • Extended LiveCoding.Cell.Util by buffer, edge, boundedFIFO and other utilities


  • Added printTimeC debugging utility


  • Added feedback migration


  • Adapted pulse backend to handles and refactored

  • Bug fixes
  • Version bounds

  • Adapted gloss backend to handles and refactored
  • Added a mechanism to make cells nonblocking
  • Added handles for nonserialisable values like threads, concurrent variables & device handles