monad-open- Open recursion for when you need it

Safe HaskellNone





data OpenT a b m b' Source

A concrete structure implementing the MonadOpen signature.


MonadRWS r w s m => MonadRWS r w s (OpenT a b m) 
Monad m => MonadOpen a b (OpenT a b m) 
MonadError e m => MonadError e (OpenT a b m) 
MonadReader r m => MonadReader r (OpenT a b m) 
MonadState s m => MonadState s (OpenT a b m) 
MonadWriter w m => MonadWriter w (OpenT a b m) 
MonadTrans (OpenT a b) 
Alternative m => Alternative (OpenT a b m) 
Monad m => Monad (OpenT a b m) 
Functor m => Functor (OpenT a b m) 
MonadFix m => MonadFix (OpenT a b m) 
MonadPlus m => MonadPlus (OpenT a b m) 
Applicative m => Applicative (OpenT a b m) 
MonadThrow m => MonadThrow (OpenT a b m) 
MonadCatch m => MonadCatch (OpenT a b m) 
MonadMask m => MonadMask (OpenT a b m) 
MonadIO m => MonadIO (OpenT a b m) 
MonadCont m => MonadCont (OpenT a b m) 

type OpenT' a m b = OpenT a b m b Source

A simplified version of the OpenT type which fixes the output parameter.


close :: Monad m => Op a (OpenT a b m) b -> a -> m b Source

An open operation may be closed.