@hackage free-operational0.5.0.0
Operational Applicative, Alternative, Monad and MonadPlus from free types.
Categories
License
BSD-3-Clause
Maintainer
luis@casillas.org
Links
Versions
Installation
Dependencies (6)
- base >=4 && <5
- comonad-transformers >=3.0
- free >=3.3
- kan-extensions >=3.7 && <3.8
- mtl >=2
- transformers >=0.3 Show all…
Dependents (2)
@hackage/acme-everything, @hackage/takahashi
Package Flags
test-properties(off by default)
A reimplementation of the operational package
(http://hackage.haskell.org/package/operational) using free monads
(from http://hackage.haskell.org/package/free). This implements
ideas discussed here:
http://stackoverflow.com/questions/14263363/is-operational-really-isomorphic-to-a-free-monad
http://www.reddit.com/r/haskell/comments/17a33g/free_functors_the_reason_free_and_operational_are/
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:
http://gergo.erdi.hu/blog/2012-12-01-static_analysis_with_applicatives/ (discussion: http://www.reddit.com/r/haskell/comments/143wpd/static_analysis_with_applicatives/)
http://paolocapriotti.com/blog/2013/04/03/free-applicative-functors/ (discussion: http://www.reddit.com/r/haskell/comments/1bnql3/free_applicative_functors_icfp_submission/)
See Control.Applicative.Operational for the bulk of the documentation.
Control.Alternative.Operational also has some significant examples.