Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
class UniqueEffect (effName :: k) (m :: * -> *) a | effName m -> a Source #
Instances
UniqueEffect effName m a => UniqueEffect (effName :: k2) (t m) (a :: k1) Source # | |
Defined in Control.Effects | |
UniqueEffect State (StateT s m) (s :: Type) Source # | |
Defined in Control.Effects.State | |
UniqueEffect State (RuntimeImplemented (State s) m) (s :: Type) Source # | |
Defined in Control.Effects.State | |
UniqueEffect Yield (RuntimeImplemented (Yield a) m) (a :: Type) Source # | |
Defined in Control.Effects.Yield | |
UniqueEffect Async IO AsyncThread Source # | |
Defined in Control.Effects.Async | |
UniqueEffect Async (RuntimeImplemented (Async thread) m) (thread :: (Type -> Type) -> Type -> Type) Source # | |
Defined in Control.Effects.Async |
type family MonadEffects effs m :: Constraint where ... Source #
MonadEffects '[] m = () | |
MonadEffects (eff ': effs) m = (MonadEffect eff m, MonadEffects effs m) |
newtype RuntimeImplemented e m a Source #
RuntimeImplemented | |
|
Instances
class (Effect e, Monad m, ExtraConstraint e m) => MonadEffect e m where Source #
Nothing
Instances
class Effect (e :: (* -> *) -> *) where Source #
Nothing
type CanLift e (t :: (* -> *) -> * -> *) :: Constraint Source #
type ExtraConstraint e (m :: * -> *) :: Constraint Source #
liftThrough :: forall t m. (CanLift e t, Monad m, Monad (t m)) => e m -> e (t m) Source #
liftThrough :: forall t m. (Generic (e m), MonadTrans t, Monad m, Monad (t m), SimpleMethods e m t) => e m -> e (t m) Source #
mergeContext :: Monad m => m (e m) -> e m Source #
mergeContext :: (Generic (e m), MonadicMethods e m) => m (e m) -> e m Source #
Instances
implement :: forall e m a. e m -> RuntimeImplemented e m a -> m a Source #