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 |
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 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 #