hs-functors-0.1.2.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 :: IdentityT k). m a -> n a) -> t m a -> t n a Source #

MFunctor k k (ReaderT k r) Source # 

Methods

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

MFunctor k k (Sum k f) Source # 

Methods

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

MFunctor k k (Product k f) Source # 

Methods

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

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

Methods

mmap :: (forall (a :: Compose * k f). m a -> n a) -> t m a -> t n a Source #

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

Methods

mmap :: (forall (a :: ComposeT (k2 -> *) (k1 -> *) k3 s t). m a -> n a) -> t m a -> t n a Source #

MFunctor * * MaybeT Source # 

Methods

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

MFunctor * * (WriterT w) Source # 

Methods

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

MFunctor * * (StateT s) Source # 

Methods

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

MFunctor * * (ExceptT e) Source # 

Methods

mmap :: (forall (a :: ExceptT e). 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 #