Copyright | (c) 2023-2024 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.Free
Description
A Freer carrier that can be used as a handler for effect systems based
on data-effects
.
Synopsis
- type EffectfulF u fr e = EffF u fr (U u e)
- type EffF u fr es = ViaFreer fr (EffUnionF u es)
- newtype EffUnionF (u :: [SigClass] -> SigClass) es a = EffUnionF {
- unEffUnionF :: u es Nop a
- toEffF :: forall es fr u c. (Freer c fr, Union u) => Eff u fr '[] es ~> EffF u fr es
- fromEffF :: forall es fr u c. Freer c fr => EffF u fr es ~> Eff u fr '[] es
- runEffF :: forall f fr u c. (Freer c fr, Union u, c f) => EffF u fr '[LiftIns f] ~> f
Documentation
type EffectfulF u fr e = EffF u fr (U u e) Source #
A common type for representing first-order extensible effectful programs that can issue effects belonging to the specified sum of effect classes.
type EffF u fr es = ViaFreer fr (EffUnionF u es) Source #
A common type for representing first-order extensible effectful programs that can issue effects belonging to the specified list of effect classes.