| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Control.Monad.Ology.General.Outer
Synopsis
- class Monad m => MonadOuter (m :: Type -> Type) where
- getExtract :: m (WExtract m)
- commuteOuter :: (MonadOuter m, Functor f) => f (m a) -> m (f a)
Documentation
class Monad m => MonadOuter (m :: Type -> Type) where Source #
Monads that can compose as the outer monad with any inner monad to make a monad.
See ComposeOuter.
Instances of this type are isomorphic to P -> a for some type P.
Must satisfy:
fmap (\ex -> unWExtract ex ma) getExtract = ma.
Methods
getExtract :: m (WExtract m) Source #
Instances
| MonadOuter Identity Source # | |
Defined in Control.Monad.Ology.General.Outer | |
| (MonadInner inner, MonadOuter inner, MonadOuter outer) => MonadOuter (ComposeInner inner outer) Source # | |
Defined in Control.Monad.Ology.Specific.ComposeInner Methods getExtract :: ComposeInner inner outer (WExtract (ComposeInner inner outer)) Source # | |
| MonadOuter m => MonadOuter (IdentityT m) Source # | |
Defined in Control.Monad.Ology.Specific.IdentityT | |
| MonadOuter m => MonadOuter (ReaderT r m) Source # | |
Defined in Control.Monad.Ology.Specific.ReaderT | |
| MonadOuter ((->) r) Source # | |
Defined in Control.Monad.Ology.General.Outer Methods getExtract :: r -> WExtract ((->) r) Source # | |
commuteOuter :: (MonadOuter m, Functor f) => f (m a) -> m (f a) Source #