hs-functors-0.1.1.0: Functors from products of Haskell and its dual to Haskell

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Morph

Documentation

class MFunctor t where Source #

Minimal complete definition

mmap

Methods

mmap :: (forall a. m a -> n a) -> t m a -> t n a Source #

Instances

MFunctor k k (IdentityT k) Source # 

Methods

mmap :: (forall a. m a -> n a) -> t m a -> t n a Source #

MFunctor k k (ReaderT k r) Source # 

Methods

mmap :: (forall a. m a -> n a) -> t m a -> t n a Source #

MFunctor k k (Sum k f) Source # 

Methods

mmap :: (forall a. m a -> n a) -> t m a -> t n a Source #

MFunctor k k (Product k f) Source # 

Methods

mmap :: (forall a. m a -> n a) -> t m a -> t n a Source #

Functor f => MFunctor k k (Compose k * f) Source # 

Methods

mmap :: (forall a. m a -> n a) -> t m a -> t n a Source #

(MFunctor k1 k2 s, MFunctor k2 k t) => MFunctor k1 k (ComposeT (k -> *) k1 (k2 -> *) s t) Source # 

Methods

mmap :: (forall a. m a -> n a) -> t m a -> t n a Source #

MFunctor * * MaybeT Source # 

Methods

mmap :: (forall a. m a -> n a) -> t m a -> t n a Source #

MFunctor * * (WriterT w) Source # 

Methods

mmap :: (forall a. m a -> n a) -> t m a -> t n a Source #

MFunctor * * (StateT s) Source # 

Methods

mmap :: (forall a. m a -> n a) -> t m a -> t n a Source #

MFunctor * * (ExceptT e) Source # 

Methods

mmap :: (forall a. m a -> n a) -> t m a -> t n a Source #

class (MonadTrans t, MFunctor t) => MMonad t where Source #

Methods

mjoin :: Monad m => t (t m) a -> t m a Source #

mbind :: Monad n => (forall a. m a -> t n a) -> t m a -> t n a Source #

Instances

MMonad MaybeT Source # 

Methods

mjoin :: Monad m => MaybeT (MaybeT m) a -> MaybeT m a Source #

mbind :: Monad n => (forall a. m a -> MaybeT n a) -> MaybeT m a -> MaybeT n a Source #

Monoid w => MMonad (WriterT w) Source # 

Methods

mjoin :: Monad m => WriterT w (WriterT w m) a -> WriterT w m a Source #

mbind :: Monad n => (forall a. m a -> WriterT w n a) -> WriterT w m a -> WriterT w n a Source #

MMonad (IdentityT *) Source # 

Methods

mjoin :: Monad m => IdentityT * (IdentityT * m) a -> IdentityT * m a Source #

mbind :: Monad n => (forall a. m a -> IdentityT * n a) -> IdentityT * m a -> IdentityT * n a Source #

MMonad (ExceptT e) Source # 

Methods

mjoin :: Monad m => ExceptT e (ExceptT e m) a -> ExceptT e m a Source #

mbind :: Monad n => (forall a. m a -> ExceptT e n a) -> ExceptT e m a -> ExceptT e n a Source #

MMonad (ReaderT * r) Source # 

Methods

mjoin :: Monad m => ReaderT * r (ReaderT * r m) a -> ReaderT * r m a Source #

mbind :: Monad n => (forall a. m a -> ReaderT * r n a) -> ReaderT * r m a -> ReaderT * r n a Source #