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

Copyright(c) 2013 Aleksey Khudyakov
LicenseBSD3
Maintaineralexey.skladnoy@gmail.com
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell98

Control.Monad.Primitive.Class

Description

 

Synopsis

Documentation

class (PrimMonad (BasePrimMonad m), Monad m) => MonadPrim m where #

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

Minimal complete definition

liftPrim

Associated Types

type BasePrimMonad m :: * -> * #

Methods

liftPrim :: BasePrimMonad m a -> m a #

Instances

MonadPrim IO # 

Associated Types

type BasePrimMonad (IO :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad IO a -> IO a #

MonadPrim (ST s) # 

Associated Types

type BasePrimMonad (ST s :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (ST s) a -> ST s a #

MonadPrim m => MonadPrim (MaybeT m) # 

Associated Types

type BasePrimMonad (MaybeT m :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (MaybeT m) a -> MaybeT m a #

(MonadPrim m, Monoid w) => MonadPrim (WriterT w m) # 

Associated Types

type BasePrimMonad (WriterT w m :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (WriterT w m) a -> WriterT w m a #

(MonadPrim m, Monoid w) => MonadPrim (WriterT w m) # 

Associated Types

type BasePrimMonad (WriterT w m :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (WriterT w m) a -> WriterT w m a #

MonadPrim m => MonadPrim (StateT s m) # 

Associated Types

type BasePrimMonad (StateT s m :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (StateT s m) a -> StateT s m a #

MonadPrim m => MonadPrim (StateT s m) # 

Associated Types

type BasePrimMonad (StateT s m :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (StateT s m) a -> StateT s m a #

MonadPrim m => MonadPrim (IdentityT * m) # 

Associated Types

type BasePrimMonad (IdentityT * m :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (IdentityT * m) a -> IdentityT * m a #

(MonadPrim m, Error e) => MonadPrim (ErrorT e m) # 

Associated Types

type BasePrimMonad (ErrorT e m :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (ErrorT e m) a -> ErrorT e m a #

MonadPrim m => MonadPrim (ReaderT * r m) # 

Associated Types

type BasePrimMonad (ReaderT * r m :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (ReaderT * r m) a -> ReaderT * r m a #

MonadPrim m => MonadPrim (ContT * r m) # 

Associated Types

type BasePrimMonad (ContT * r m :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (ContT * r m) a -> ContT * r m a #

(MonadPrim m, Monoid w) => MonadPrim (RWST r w s m) # 

Associated Types

type BasePrimMonad (RWST r w s m :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (RWST r w s m) a -> RWST r w s m a #

(MonadPrim m, Monoid w) => MonadPrim (RWST r w s m) # 

Associated Types

type BasePrimMonad (RWST r w s m :: * -> *) :: * -> * #

Methods

liftPrim :: BasePrimMonad (RWST r w s m) a -> RWST r w s m a #