heftia-effects-0.3.1.0: higher-order effects done right
Copyright(c) 2023 Yamada Ryo
LicenseMPL-2.0 (see the file LICENSE)
Maintainerymdfield@outlook.jp
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageGHC2021

Control.Effect.Interpreter.Heftia.Reader

Description

Interpreter and elaborator for the Local / Catch effect classes.

Synopsis

Documentation

runReader :: forall r rh rf fr u c. (Freer c fr, HFunctorUnion u, ForallHFunctor u rh, Member u (Ask r) (LAsk r ': rf), Functor (Eff u fr rh (LAsk r ': rf)), Applicative (Eff u fr rh rf)) => r -> Eff u fr (Local r ': rh) (LAsk r ': rf) ~> Eff u fr rh rf Source #

runLocal :: forall r rh ef fr u c. (Freer c fr, HFunctorUnion u, ForallHFunctor u rh, Member u (Ask r) ef, Functor (Eff u fr rh ef)) => Eff u fr (Local r ': rh) ef ~> Eff u fr rh ef Source #

Elaborate the Local effect.

elabLocal :: forall r eh ef fr u c. (Member u (Ask r) ef, Freer c fr, Union u, HFunctor (u eh), Functor (Eff u fr eh ef)) => Elab (Local r) (Eff u fr eh ef) Source #

runAsk :: forall r rs eh fr u c. (Freer c fr, Union u, Applicative (Eff u fr eh rs), HFunctor (u eh)) => r -> Eff u fr eh (LAsk r ': rs) ~> Eff u fr eh rs Source #

Interpret the Ask effect.