monad-schedule

A new, simple, composable concurrency abstraction.

Version on this page:0.1.2.0
LTS Haskell 22.18:0.1.2.2
Stackage Nightly 2024-04-25:0.1.2.2
Latest on Hackage:0.1.2.2

See all snapshots monad-schedule appears in

MIT licensed by Manuel Bärenz
Maintained by [email protected]
This version can be pinned in stack with:monad-schedule-0.1.2.0@sha256:640b0dc483c2c0fef3fbbe91ddd2685aa13621fc1457497659d6c4c4d2d1ee74,1803

A monad m is said to allow scheduling if you can pass a number of actions m a to it, and those can be executed at the same time concurrently. You can observe the result of the actions after some time: Some actions will complete first, and the results of these are returned then as a list NonEmpty a. Other actions are still running, and for these you will receive continuations of type m a, which you can further run or schedule to completion as you like.

Changes

Revision history for monad-schedule

0.1.2.0 – 2022-06-26

  • Added test suite
  • Added further Writer instances
  • Fixed bug in ScheduleT and YieldT

0.1.1.0 – 2022-06-25

  • Added Yield scheduling monad
  • Added Identity instance

0.1.0.0 – 2022-03-27

  • Added MonadSchedule clas
  • Added free scheduling transformer ScheduleT
  • Added instances for common transformers