monad-primitive-0.1: Type class for monad transformers stack with pirimitive base monad.

Portabilitynon-portable
Stabilityexperimental
Maintaineralexey.skladnoy@gmail.com
Safe HaskellNone

Control.Monad.Primitive.Class

Description

 

Synopsis

Documentation

class (PrimMonad (BasePrimMonad m), Monad m) => MonadPrim m whereSource

Monads in which computation based on primitive monad (instance of PrimMonad) could be embedded. Instances must obey following laws:

 liftPrim . return  = return
 liftPrim (m >>= f) = liftPrim m >>= liftPrim f

Associated Types

type BasePrimMonad m :: * -> *Source

Methods

liftPrim :: BasePrimMonad m a -> m aSource

Instances

MonadPrim IO 
MonadPrim (ST s) 
MonadPrim m => MonadPrim (IdentityT m) 
MonadPrim m => MonadPrim (MaybeT m) 
MonadPrim m => MonadPrim (ContT r m) 
(MonadPrim m, Error e) => MonadPrim (ErrorT e m) 
MonadPrim m => MonadPrim (ReaderT r m) 
MonadPrim m => MonadPrim (StateT s m) 
MonadPrim m => MonadPrim (StateT s m) 
(MonadPrim m, Monoid w) => MonadPrim (WriterT w m) 
(MonadPrim m, Monoid w) => MonadPrim (WriterT w m) 
(MonadPrim m, Monoid w) => MonadPrim (RWST r w s m) 
(MonadPrim m, Monoid w) => MonadPrim (RWST r w s m)