data-effects-0.1.2.0: A basic framework for effect systems based on effects represented by GADTs.
Copyright(c) 2024 Yamada Ryo
LicenseMPL-2.0 (see the file LICENSE)
Maintainerymdfield@outlook.jp
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageGHC2021

Data.Effect.NonDet

Description

 

Documentation

data Empty (a :: Type) where Source #

Constructors

Empty :: Empty a 

pattern LEmpty :: () => (a ~ a, ()) => LiftIns Empty f a Source #

empty'' :: forall key (a :: Type) f. SendInsBy key Empty f => f a Source #

empty' :: forall tag (a :: Type) f. SendIns (Tag Empty tag) f => f a Source #

empty :: forall (a :: Type) f. SendIns Empty f => f a Source #

data Choose (a :: Type) where Source #

Constructors

Choose :: Choose Bool 

pattern LChoose :: () => (a ~ Bool, ()) => LiftIns Choose f a Source #

choose'' :: forall key f. SendInsBy key Choose f => f Bool Source #

choose' :: forall tag f. SendIns (Tag Choose tag) f => f Bool Source #

choose :: forall f. SendIns Choose f => f Bool Source #

data ChooseH f (a :: Type) where Source #

Constructors

ChooseH :: f a -> f a -> ChooseH f a 

Instances

Instances details
() => HFunctor ChooseH Source # 
Instance details

Defined in Data.Effect.NonDet

Methods

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

chooseH'' :: forall key (a :: Type) f. SendSigBy key ChooseH f => f a -> f a -> f a Source #

chooseH' :: forall tag (a :: Type) f. SendSig (TagH ChooseH tag) f => f a -> f a -> f a Source #

chooseH :: forall (a :: Type) f. SendSig ChooseH f => f a -> f a -> f a Source #