data-effects-0.4.2.0: A basic framework for effect systems based on effects represented by GADTs.
Copyright(c) 2024-2025 Sayo contributors
LicenseMPL-2.0 (see the file LICENSE)
Maintainer[email protected]
Safe HaskellNone
LanguageGHC2021

Data.Effect.Fresh

Description

 

Documentation

data Fresh i (a :: Type -> Type) b where Source #

Constructors

Fresh :: forall i (a :: Type -> Type). Fresh i a i 

Instances

Instances details
FirstOrder (Fresh i) Source # 
Instance details

Defined in Data.Effect.Fresh

PolyHFunctor (Fresh i) Source # 
Instance details

Defined in Data.Effect.Fresh

HFunctor (Fresh i) Source # 
Instance details

Defined in Data.Effect.Fresh

Methods

hfmap :: (forall x. f x -> g x) -> Fresh i f a -> Fresh i g a #

type FormOf (Fresh i) Source # 
Instance details

Defined in Data.Effect.Fresh

type FormOf (Fresh i) = 'Polynomial
type LabelOf (Fresh i) Source # 
Instance details

Defined in Data.Effect.Fresh

type OrderOf (Fresh i) Source # 
Instance details

Defined in Data.Effect.Fresh

fresh :: forall i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Fresh i :> es) => f i Source #

fresh' :: forall {k} (key :: k) i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Fresh i) es) => f i Source #

fresh'' :: forall {k} (tag :: k) i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Fresh i) :> es) => f i Source #

fresh'_ :: forall i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Fresh i) es) => f i Source #