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.


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

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
Revised Revision 1 made by marcosdumay at 2016-04-01T21:41:18Z
Category Control
Home page
Source repo head: git clone -b master
this: git clone
Uploaded by marcosdumay at 2016-04-01T21:37:19Z
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 available [build log]
Last success reported on 2016-04-01 [all 1 reports]