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

[ bsd3, control, library ] [ Propose Tags ]
Dependencies base (==4.*), comonad‑transformers (>=3.0), free (>=3.3), kan‑extensions (==3.7.*), 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 Thu Aug 8 05:46:22 UTC 2013
Distributions NixOS:
Downloads 1689 total (14 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

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.





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


Maintainer's Corner

For package maintainers and hackage trustees