Safe Haskell | None |
---|---|
Language | Haskell2010 |
- type family EffectMsg eff :: *
- type family EffectRes eff :: *
- class Monad m => MonadEffect eff m where
- newtype EffectHandler eff m a = EffectHandler {
- unpackEffectHandler :: ReaderT (EffectMsg eff -> m (EffectRes eff)) m a
- handleEffect :: Monad m => (EffectMsg eff -> m (EffectRes eff)) -> EffectHandler eff m a -> m a
- module Control.Effects1
Documentation
class Monad m => MonadEffect eff m where Source #
(MonadEffect eff m, MonadTrans t, Monad (t m)) => MonadEffect eff (t m) Source # | |
Monad m => MonadEffect eff (EffectHandler eff m) Source # | |
newtype EffectHandler eff m a Source #
The EffectHandler
is rally just a ReaderT
carrying around the function that knows how to
handle the effect.
EffectHandler | |
|
MonadState s m => MonadState s (EffectHandler eff m) Source # | |
MonadReader s m => MonadReader s (EffectHandler eff m) Source # | |
MonadBaseControl IO m => MonadBaseControl IO (EffectHandler eff m) Source # | |
MonadBase IO m => MonadBase IO (EffectHandler eff m) Source # | |
Monad m => MonadEffect eff (EffectHandler eff m) Source # | |
MonadTrans (EffectHandler eff) Source # | |
Monad m => Monad (EffectHandler eff m) Source # | |
Functor m => Functor (EffectHandler eff m) Source # | |
Applicative m => Applicative (EffectHandler eff m) Source # | |
MonadRandom m => MonadRandom (EffectHandler eff m) Source # | |
MonadIO m => MonadIO (EffectHandler eff m) Source # | |
MonadThrow m => MonadThrow (EffectHandler eff m) Source # | |
MonadCatch m => MonadCatch (EffectHandler eff m) Source # | |
type StM (EffectHandler eff m) a Source # | |
handleEffect :: Monad m => (EffectMsg eff -> m (EffectRes eff)) -> EffectHandler eff m a -> m a Source #
Handle the effect described by eff
.
module Control.Effects1