operational-class-0.2.0.2: MonadProgram typeclass for the operational package

Safe HaskellSafe
LanguageHaskell2010

Control.Monad.Operational.Class

Documentation

class Monad m => MonadProgram instr m | m -> instr where Source

Methods

wrap :: Program instr (m a) -> m a Source

Instances

MonadProgram instr m => MonadProgram instr (ListT m) 
MonadProgram instr m => MonadProgram instr (IdentityT m) 
MonadProgram instr m => MonadProgram instr (MaybeT m) 
(MonadProgram instr m, Monoid w) => MonadProgram instr (WriterT w m) 
(MonadProgram instr m, Monoid w) => MonadProgram instr (WriterT w m) 
MonadProgram instr m => MonadProgram instr (ContT r m) 
MonadProgram instr m => MonadProgram instr (StateT s m) 
MonadProgram instr m => MonadProgram instr (StateT s m) 
MonadProgram instr m => MonadProgram instr (ReaderT e m) 
Monad m => MonadProgram instr (ProgramT instr m) 
(MonadProgram instr m, Monoid w) => MonadProgram instr (RWST r w s m) 
(MonadProgram instr m, Monoid w) => MonadProgram instr (RWST r w s m) 

wrapT :: (m ~ t n, Monad m, MonadTrans t, MonadProgram instr n) => Program instr (m a) -> m a Source

liftProgram :: MonadProgram instr m => Program instr a -> m a Source

singleton :: MonadProgram instr m => instr a -> m a Source