-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | fast and simple operational monad -- -- This package provides tiny implementation of operational monad. @package minioperational @version 0.1 -- | A class for operational monads module Control.Monad.Operational.Class class Monad m => Operational t m | m -> t singleton :: Operational t m => t a -> m a instance (Operational f m, Error e) => Operational f (ErrorT e m) instance Operational f m => Operational f (ListT m) instance Operational f m => Operational f (IdentityT m) instance Operational f m => Operational f (MaybeT m) instance (Operational f m, Monoid w) => Operational f (RWST r w s m) instance (Operational f m, Monoid w) => Operational f (RWST r w s m) instance (Operational f m, Monoid w) => Operational f (WriterT w m) instance (Operational f m, Monoid w) => Operational f (WriterT w m) instance Operational f m => Operational f (ContT r m) instance Operational f m => Operational f (StateT s m) instance Operational f m => Operational f (StateT s m) instance Operational f m => Operational f (ReaderT e m) -- | Simple operational monad from a free monad module Control.Monad.Operational.Mini type Program t = F (Yoneda t) interpret :: Monad m => (forall x. t x -> m x) -> Program t a -> m a instance Operational t (Program t)