data-effects-0.3.0.1: A basic framework for effect systems based on effects represented by GADTs.
Copyright(c) 2023 Sayo Koyoneda
LicenseMPL-2.0 (see the file LICENSE)
Maintainer[email protected]
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageGHC2021

Data.Effect.Accum

Description

 

Documentation

data Accum w a where Source #

Constructors

Add :: forall w1 w. w1 -> Accum w () 
Look :: forall w. Accum w w 

type LAccum w = LiftFOE (Accum w) Source #

pattern LLook :: forall a w f. () => (a ~ w, ()) => LiftFOE (Accum w) f a Source #

pattern LAdd :: forall a f1 f2 w. () => (a ~ (), ()) => w -> LiftFOE (Accum f1) f2 a Source #

add :: forall w f1 f2. SendFOE (Accum f1) f2 => w -> f2 () Source #

add' :: forall {k} (tag :: k) w f1 f2. SendFOE (Tag (Accum f1) tag) f2 => w -> f2 () Source #

add'' :: forall {k} (key :: k) w f1 f2. SendFOEBy key (Accum f1) f2 => w -> f2 () Source #

look :: SendFOE (Accum w) f => f w Source #

look' :: forall {k} (tag :: k) w f. SendFOE (Tag (Accum w) tag) f => f w Source #

look'' :: forall {k} (key :: k) w f. SendFOEBy key (Accum w) f => f w Source #