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

Safe HaskellNone

Algebra.Monad.Cont

Contents

Synopsis

The MonadCont class

class Monad m => MonadCont m whereSource

Methods

callCC :: ((a -> m b) -> m a) -> m aSource

Instances

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

The Continuation transformer

newtype ContT r m a Source

A simple continuation monad implementation

Constructors

ContT 

Fields

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

Instances

MonadTrans (ContT r) 
Unit m => Unit (ContT r m) 
Monad m => MonadCont (ContT r m) 
Monad m => Monad (ContT r m) 
Applicative m => Applicative (ContT r m) 
Functor f => Functor (ContT r f) 
Ring (m r) => Ring (ContT r m a) 
Semiring (m r) => Semiring (ContT r m a) 
Monoid (m r) => Monoid (ContT r m a) 
Semigroup (m r) => Semigroup (ContT r m a) 

type Cont r a = ContT r Id aSource

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

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