free-operational: Operational Applicative, Alternative, Monad and MonadPlus from free types.

[ bsd3, control, library ] [ Propose Tags ]

A reimplementation of the operational package ( using free monads (from This implements ideas discussed here:

To understand the basic concepts you can do no better than read Heinrich Apfelmus' operational tutorial:

In addition to that, this package supplies operational-style modules for Applicative, Alternative and MonadPlus. Applicative and Alternative programs easily admit of static analysis. See these references for discussion and examples:

See Control.Applicative.Operational for the bulk of the documentation. Control.Alternative.Operational also has some significant examples.


Manual Flags


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,
Dependencies base (>=4 && <5), comonad-transformers (>=3.0), free (>=3.3), kan-extensions (>=3.7 && <3.8), mtl (>=2), transformers (>=0.3) [details]
License BSD-3-Clause
Copyright 2013 Luis Casillas
Author Luis Casillas
Category Control
Bug tracker
Source repo head: git clone
Uploaded by LuisCasillas at 2013-08-08T05:46:22Z
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 3694 total (6 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]