-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | MonadProgram typeclass for the operational package
--   
--   MonadProgram typeclass for the operational package
@package operational-class
@version 0.3.0.0

module Control.Monad.Operational.Class
class Monad m => MonadProgram instr m | m -> instr
liftProgram :: MonadProgram instr m => Program instr a -> m a
liftProgramTrans :: (Monad (t n), MonadTrans t, MonadProgram instr n) => Program instr a -> t n a
singleton :: MonadProgram instr m => instr a -> m a
instance GHC.Base.Monad m => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Operational.ProgramT instr m)
instance Control.Monad.Operational.Class.MonadProgram instr m => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Trans.Reader.ReaderT e m)
instance Control.Monad.Operational.Class.MonadProgram instr m => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Trans.State.Strict.StateT s m)
instance Control.Monad.Operational.Class.MonadProgram instr m => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Trans.State.Lazy.StateT s m)
instance Control.Monad.Operational.Class.MonadProgram instr m => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Trans.Cont.ContT r m)
instance (Control.Monad.Operational.Class.MonadProgram instr m, GHC.Base.Monoid w) => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Trans.Writer.Strict.WriterT w m)
instance (Control.Monad.Operational.Class.MonadProgram instr m, GHC.Base.Monoid w) => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Trans.Writer.Lazy.WriterT w m)
instance (Control.Monad.Operational.Class.MonadProgram instr m, GHC.Base.Monoid w) => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Trans.RWS.Strict.RWST r w s m)
instance (Control.Monad.Operational.Class.MonadProgram instr m, GHC.Base.Monoid w) => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
instance Control.Monad.Operational.Class.MonadProgram instr m => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Trans.Maybe.MaybeT m)
instance Control.Monad.Operational.Class.MonadProgram instr m => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Trans.Identity.IdentityT m)
instance Control.Monad.Operational.Class.MonadProgram instr m => Control.Monad.Operational.Class.MonadProgram instr (Control.Monad.Trans.List.ListT m)
