definitive-base-2.3: The base modules of the Definitive framework.

Safe HaskellNone
LanguageHaskell2010

Algebra.Monad.Cont

Contents

Synopsis

The MonadCont class

class Monad m => MonadCont m where Source

Methods

callCC :: (forall b. (a -> m b) -> m b) -> m a Source

Instances

MonadCont (ContT m) 
MonadCont m => MonadCont (StateT s m) 
MonadCont m => MonadCont (ReaderT r m) 
(Monoid w, MonadCont m) => MonadCont (WriterT w m) 
(Monoid w, MonadCont m) => MonadCont (RWST r w s m) 

The Continuation transformer

newtype ContT m a Source

A simple continuation monad implementation

Constructors

ContT 

Fields

runContT :: forall r. (a -> m r) -> m r
 

type Cont a = ContT Id a Source

contT :: (Monad m, Unit m') => Iso (ContT m a) (ContT m' a') (m a) (m' a') Source

cont :: Iso (Cont a) (Cont a') a a' Source

(>>~) :: ContT m a -> (a -> m b) -> m b Source