operational

Implementation of difficult monads made easy with operational semantics.

http://wiki.haskell.org/Operational

Version on this page:0.2.3.3
LTS Haskell 22.39:0.2.4.2@rev:1
Stackage Nightly 2024-10-31:0.2.4.2@rev:1
Latest on Hackage:0.2.4.2@rev:1

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-0.2.3.3@sha256:33f3ccf1562ec904d39f4b560b329f8e9505060689a8bb5300d60e5d0525aead,2124

Module documentation for 0.2.3.3

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: MonadPrompt http://hackage.haskell.org/package/MonadPrompt.

Changes

Changelog for the operational package

0.2.3.3 – Maintenance release.

  • Minor fixes to documentation and examples

0.2.3.2 – Maintenance release.

  • Bump mtl dependency to allow 2.3

0.2.3.1 – Maintenance release.

  • Bump mtl dependency to allow 2.2

0.2.3.0 – Maintenance release.

  • added instance for MonadReader class
  • clean up documentation

0.2.2.0 – Feature release.

  • add utility function interpretWithMonad

0.2.1.0 – Maintenance release.

  • minor change: eta-reduce Program and ProgramView type synonyms

0.2.0.3 – Maintenance release.

  • moved project repository to github

0.2.0.0 – 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

0.1.0.0

  • initial release