data-effects-0.3.0.1: A basic framework for effect systems based on effects represented by GADTs.
Safe HaskellNone
LanguageGHC2021

Data.Effect.Chronicle

Documentation

data ChronicleF c a where Source #

Constructors

Dictate :: forall c. c -> ChronicleF c () 
Confess :: forall c a. c -> ChronicleF c a 

data ChronicleH c (f :: Type -> Type) a where Source #

Constructors

Memento :: forall (f :: Type -> Type) a1 c. f a1 -> ChronicleH c f (Either c a1) 
Absolve :: forall a (f :: Type -> Type) c. a -> f a -> ChronicleH c f a 
Condemn :: forall (f :: Type -> Type) a c. f a -> ChronicleH c f a 

Instances

Instances details
() => HFunctor (ChronicleH c) Source # 
Instance details

Defined in Data.Effect.Chronicle

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ChronicleH c f :-> ChronicleH c g #

pattern LConfess :: forall a c f a1. () => forall. (a ~ a1, ()) => c -> LiftFOE (ChronicleF c) f a Source #

pattern LDictate :: forall a c f. () => (a ~ (), ()) => c -> LiftFOE (ChronicleF c) f a Source #

dictate :: SendFOE (ChronicleF c) f => c -> f () Source #

dictate' :: forall {k} (tag :: k) c f. SendFOE (Tag (ChronicleF c) tag) f => c -> f () Source #

dictate'' :: forall {k} (key :: k) c f. SendFOEBy key (ChronicleF c) f => c -> f () Source #

confess :: forall c a f. SendFOE (ChronicleF c) f => c -> f a Source #

confess' :: forall {k} (tag :: k) c a f. SendFOE (Tag (ChronicleF c) tag) f => c -> f a Source #

confess'' :: forall {k} (key :: k) c a f. SendFOEBy key (ChronicleF c) f => c -> f a Source #

memento :: forall a c f. SendHOE (ChronicleH c) f => f a -> f (Either c a) Source #

memento' :: forall {k} (tag :: k) a c f. SendHOE (TagH (ChronicleH c) tag) f => f a -> f (Either c a) Source #

memento'' :: forall {k} (key :: k) a c f. SendHOEBy key (ChronicleH c) f => f a -> f (Either c a) Source #

absolve :: forall a c f. SendHOE (ChronicleH c) f => a -> f a -> f a Source #

absolve' :: forall {k} (tag :: k) a c f. SendHOE (TagH (ChronicleH c) tag) f => a -> f a -> f a Source #

absolve'' :: forall {k} (key :: k) a c f. SendHOEBy key (ChronicleH c) f => a -> f a -> f a Source #

condemn :: forall a c f. SendHOE (ChronicleH c) f => f a -> f a Source #

condemn' :: forall {k} (tag :: k) a c f. SendHOE (TagH (ChronicleH c) tag) f => f a -> f a Source #

condemn'' :: forall {k} (key :: k) a c f. SendHOEBy key (ChronicleH c) f => f a -> f a Source #

chronicle :: (ChronicleF c <: f, Applicative f) => These c a -> f a Source #