monad-schedule

A new, simple, composable concurrency abstraction.

LTS Haskell 22.41:0.1.2.2
Stackage Nightly 2024-11-12: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.2.0.1@sha256:79e9323d4b02b16f170b0ef98bdbadfbdb93b64969f752827ba361f3d527ecdc,2353

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

  • Compatibility with GHC 9.10

0.2

  • Added FreeAsync
  • Dropped support below GHC 9.2
  • Documentation fixes

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