Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- class Monad m => MonadOuter m where
- getExtract :: m (WExtract m)
- commuteOuter :: forall m f a. (MonadOuter m, Functor f) => f (m a) -> m (f a)
Documentation
class Monad m => MonadOuter m 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
.
getExtract :: m (WExtract m) Source #
Instances
commuteOuter :: forall m f a. (MonadOuter m, Functor f) => f (m a) -> m (f a) Source #