interruptible: Monad transformers that can be run and resumed later, conserving their context.

[ bsd3, control, library ] [ Propose Tags ]

Given an inner monad and a transformer: > (Monad m, MonadTrans t) If t is an interruptible transformer, it becomes possible to intercalate executions on the t context with executions over the inner monad m by breaking the execution on t and resuming it later.

Interruptible monads implement the runI function so that, given 'f :: a -> t m b' and 'g :: b -> t m c', 'resume (f >>= g)' is equivalent to 'x -> resume f x >>= resume g'.

That makes it possible to intercalate the execution of different monads, and even to return a monadic context for another function to resume it.


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS],,
Dependencies base (>=4.7 && <4.9), either, lifted-base, monad-control, transformers [details]
License BSD-3-Clause
Author Marcos Dumay de Medeiros
Category Control
Home page
Source repo head: git clone -b master
this: git clone
Uploaded by marcosdumay at 2016-04-02T16:31:22Z
Reverse Dependencies 1 direct, 1 indirect [details]
Downloads 2395 total (8 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]