monad-task: A monad transformer that turns event processing into co-routine programming.

[ bsd3, control, library ] [ Propose Tags ]

Task monad transformer can help refactor event and callback heavy programs into monads via co-routines. The idea is loosely based on Combining Events And Threads For Scalable Network Services, by Peng Li and Steve Zdancewic, in PLDI, 2007. (http://www.cis.upenn.edu/~stevez/papers/abstracts.html#LZ07), but with deterministic and co-operative lightweight threads, also known as co-routines, so that the base monad can be anything ranging from IO to state monads, or your favorite monad transformer stack.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0, 0.2.0
Change log Changelog.txt
Dependencies base (<6), mtl (>=2 && <3), transformers (>0.4 && <0.6) [details]
License BSD-3-Clause
Author Paul Liu
Maintainer Paul Liu <paul@thev.net>
Category Control
Home page http://github.com/ninegua/monad-task
Source repo head: git clone git://github.com/ninegua/monad-task.git
Uploaded by PaulLiu at 2018-01-04T02:40:51Z
Distributions
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 1876 total (4 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-01-04 [all 1 reports]

Readme for monad-task-0.2.0

[back to package description]

monad-task

Task monad transformer that turns event processing into co-routine programming.

See Invert the Inversion of Control for a tutorial on writing a GLFW/OpenGL application using task monad.