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

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

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]

Properties

Versions 0.1.0, 0.2.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:11Z

Modules

[Index]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


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.