monad-resumption-0.1.4.0: Resumption and reactive resumption monads for Haskell.

Safe HaskellSafe
LanguageHaskell2010

Control.Monad.Resumption

Description

A resumption monad transformer, based on the formulation in the article Cheap (But Functional) Threads by William L. Harrison and Adam Procter.

Synopsis

Documentation

newtype ResT m a Source #

Resumption monad transformer.

Constructors

ResT 

Fields

Instances
MonadTrans ResT Source # 
Instance details

Defined in Control.Monad.Resumption

Methods

lift :: Monad m => m a -> ResT m a #

Monad m => Monad (ResT m) Source # 
Instance details

Defined in Control.Monad.Resumption

Methods

(>>=) :: ResT m a -> (a -> ResT m b) -> ResT m b #

(>>) :: ResT m a -> ResT m b -> ResT m b #

return :: a -> ResT m a #

fail :: String -> ResT m a #

Monad m => Functor (ResT m) Source # 
Instance details

Defined in Control.Monad.Resumption

Methods

fmap :: (a -> b) -> ResT m a -> ResT m b #

(<$) :: a -> ResT m b -> ResT m a #

Monad m => Applicative (ResT m) Source # 
Instance details

Defined in Control.Monad.Resumption

Methods

pure :: a -> ResT m a #

(<*>) :: ResT m (a -> b) -> ResT m a -> ResT m b #

liftA2 :: (a -> b -> c) -> ResT m a -> ResT m b -> ResT m c #

(*>) :: ResT m a -> ResT m b -> ResT m b #

(<*) :: ResT m a -> ResT m b -> ResT m a #

MonadIO m => MonadIO (ResT m) Source # 
Instance details

Defined in Control.Monad.Resumption

Methods

liftIO :: IO a -> ResT m a #

MFunctor ResT Source # 
Instance details

Defined in Control.Monad.Resumption

Methods

hoist :: Monad m => (forall a. m a -> n a) -> ResT m b -> ResT n b #

runResT :: Monad m => ResT m a -> m a Source #

Runs a resumptive computation to exhaustion, producing its final return value.

tick :: Monad m => ResT m () Source #

Waits until the next tick.