Safe Haskell | Safe |
---|
This module defines two classes.
means a monad Forkable
m nn
may be forked in m
.
means that applying the transformer to ForkableT
tn
and m
will mean you can still fork t n
in t m
.
The reason we need a separate class for monad transformers is because often times the "forkability" of a transformed monad does not depend on the underlying monad, only it's forkability. This is the case for example for most standard monad transformers.
Documentation
ForkableT. The default instance uses MonadTransControl
to lift the underlying fork
class (MonadIO m, MonadIO n) => Forkable m n whereSource
Forkable IO IO | |
(MonadBaseControl IO m, MonadIO m) => Forkable (ResourceT m) (ResourceT m) | |
(Forkable m n, Error e) => Forkable (ErrorT e m) (ErrorT e n) | |
Forkable m n => Forkable (ReaderT s m) (StateT s n) | |
Forkable m n => Forkable (ReaderT r m) (ReaderT r n) | |
Forkable m n => Forkable (StateT s m) (ReaderT s n) | |
Forkable m n => Forkable (StateT s m) (StateT s n) |