@hackage monad-schedule0.1.2.2

A new, simple, composable concurrency abstraction.

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.