SimpleH-1.2: A light, clean and powerful Haskell utility library

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) 
Monoid (m r) => Monoid (ContT r m a) 
Semigroup (m r) => Semigroup (ContT r m a) 

type Cont r a = ContT r Id aSource

evalContT :: Unit m => ContT r m r -> m rSource

evalCont :: Cont r r -> rSource