Implementation of difficult monads made easy with operational semantics.


Version on this page:
LTS Haskell 22.30:
Stackage Nightly 2024-07-22:
Latest on Hackage:

See all snapshots operational appears in

BSD-3-Clause licensed by Heinrich Apfelmus
Maintained by Heinrich Apfelmus <apfelmus quantentunnel de>
This version can be pinned in stack with:operational-,2490

Module documentation for

This library makes it easy to implement monads with tricky control flow.

This is useful for: writing web applications in a sequential style, programming games with a uniform interface for human and AI players and easy replay capababilities, implementing fast parser monads, designing monadic DSLs, etc.

See the project homepage http://wiki.haskell.org/Operational for a more detailed introduction and features.

Related packages:


Changelog for the operational package – Maintenance release.

  • Update references to other packages.
  • Modernize .cabal file. – Maintenance release.

  • Restrict dependencies to ensure GHC >= 7.2. – Maintenance release.

  • Minor fixes to documentation and examples – Maintenance release.

  • Bump mtl dependency to allow 2.3 – Maintenance release.

  • Bump mtl dependency to allow 2.2 – Maintenance release.

  • added instance for MonadReader class
  • clean up documentation – Feature release.

  • add utility function interpretWithMonad – Maintenance release.

  • minor change: eta-reduce Program and ProgramView type synonyms – Maintenance release.

  • moved project repository to github – Feature release.

  • changed name of view type to ProgramView
  • added instances for mtl classes
  • new function liftProgram to embed Program in ProgramT
  • new example TicTacToe.hs
  • various documentation updates

  • initial release