Copyright | (c) 2013 Aleksey Khudyakov |
---|---|
License | BSD3 |
Maintainer | alexey.skladnoy@gmail.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell98 |
Control.Monad.Primitive.Class
Description
- class (PrimMonad (BasePrimMonad m), Monad m) => MonadPrim m where
- type BasePrimMonad m :: * -> *
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
Associated Types
type BasePrimMonad m :: * -> * #
Methods
liftPrim :: BasePrimMonad m a -> m a #
Instances
MonadPrim IO # | |
MonadPrim (ST s) # | |
MonadPrim m => MonadPrim (MaybeT m) # | |
(MonadPrim m, Monoid w) => MonadPrim (WriterT w m) # | |
(MonadPrim m, Monoid w) => MonadPrim (WriterT w m) # | |
MonadPrim m => MonadPrim (StateT s m) # | |
MonadPrim m => MonadPrim (StateT s m) # | |
MonadPrim m => MonadPrim (IdentityT * m) # | |
(MonadPrim m, Error e) => MonadPrim (ErrorT e m) # | |
MonadPrim m => MonadPrim (ReaderT * r m) # | |
MonadPrim m => MonadPrim (ContT * r m) # | |
(MonadPrim m, Monoid w) => MonadPrim (RWST r w s m) # | |
(MonadPrim m, Monoid w) => MonadPrim (RWST r w s m) # | |