| Copyright | (c) 2023 Yamada Ryo |
|---|---|
| License | MPL-2.0 (see the file LICENSE) |
| Maintainer | ymdfield@outlook.jp |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Safe-Inferred |
| Language | GHC2021 |
Control.Effect.Class.Provider
Description
This module provides the Provider effect, comes
from Effectful.Provider
in the effectful package.
Documentation
class Provider c e i g (f :: Type -> Type) where Source #
Instances
| SendSig (ProviderS c e i g) f => Provider c e i g (EffectsVia EffectDataHandler f) Source # | |
Defined in Control.Effect.Class.Provider Methods provide :: i -> (forall (h :: Type -> Type). (c h, e h) => (EffectsVia EffectDataHandler f ~> h) -> h a) -> EffectsVia EffectDataHandler f (g a) Source # | |
data ProviderS (c :: (Type -> Type) -> Constraint) (e :: (Type -> Type) -> Constraint) (i :: Type) (g :: Type -> Type) f (a :: Type) where Source #
type MonadProvider = Provider Monad Source #
mprovide :: MonadProvider e i g f => i -> (forall h. (Monad h, e h) => (f ~> h) -> h a) -> f (g a) Source #
aprovide :: ApplicativeProvider e i g f => i -> (forall h. (Applicative h, e h) => (f ~> h) -> h a) -> f (g a) Source #