monad-schedule

A new, simple, composable concurrency abstraction.

Version on this page:0.1.2.2
LTS Haskell 22.39:0.1.2.2
Stackage Nightly 2024-10-31:0.2.0.1
Latest on Hackage:0.2.0.1

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.2@sha256:aca764bc700fcc68cf38ed7662b5a1c5879d25965d342445dd8b341382d3a425,2000

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.2

  • Compatibility with GHC 9.8

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