operational-class-0.3.0.0: 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

liftProgram :: Program instr 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) 

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

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