effect-handlers: A library for writing extensible algebraic effects and handlers. Similar to extensible-effects but with deep handlers.
This is an extensible effects library for Haskell taking inspiration from the Eff language http://www.eff-lang.org/.
See these papers for the ideas and theory behind the library:
O. Kammar et al: Handlers in Action! http://homepages.inf.ed.ac.uk/slindley/papers/handlers.pdf
A. Bauer, M. Pretnar: Programming with Algebraic Effects and Handlers http://arxiv.org/abs/1203.1539
O Kiselyov, A Sabry, C Swords: Extensible Effects http://dl.acm.org/citation.cfm?id=2503791
Implementation wise it's most close to extensible-effects
http://hackage.haskell.org/package/extensible-effects (also see the Extensible Effects paper) but it implements deep handlers instead of shallow.
import Control.Effects.Cont.Eff import Control.Effects.Cont.Reader import Control.Effects.Cont.Exception program = do v <- ask if v < 15 then throw $ show v else return (v+1) run n = runPure . handle exceptionHandler . handle (readerHandler n) res :: Integer -> Either String Integer res n = run n program
[Skip to Readme]
Modules
[Index]
Downloads
- effect-handlers-0.1.0.8.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.5, 0.1.0.6, 0.1.0.7, 0.1.0.8 |
---|---|
Dependencies | base (>=4.7 && <5), free (>=4.9 && <5), kan-extensions (>=4.1 && <6), mtl (>=2.1 && <3) [details] |
License | MIT |
Author | Andraz Bajt, Blaz Repas |
Maintainer | Andraz Bajt <andraz@bajt.me> |
Category | Control |
Home page | https://github.com/edofic/effect-handlers |
Bug tracker | https://github.com/edofic/effect-handlers/issues |
Uploaded | by edofic at 2016-04-28T15:06:03Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Downloads | 7247 total (38 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2016-11-26 [all 1 reports] |