data-effects-0.2.0.0: A basic framework for effect systems based on effects represented by GADTs.
Copyright(c) 2024 Sayo Koyoneda
LicenseMPL-2.0 (see the file LICENSE)
Maintainerymdfield@outlook.jp
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageGHC2021

Data.Effect.NonDet

Description

 

Documentation

data Empty a where Source #

Constructors

Empty :: forall a. Empty a 

pattern LEmpty :: forall a f a1. () => forall. (a ~ a1, ()) => LiftFOE Empty f a Source #

empty :: forall a f. SendFOE Empty f => f a Source #

empty' :: forall {k} (tag :: k) a f. SendFOE (Tag Empty tag) f => f a Source #

empty'' :: forall {k} (key :: k) a f. SendFOEBy key Empty f => f a Source #

data Choose a where Source #

Constructors

Choose :: Choose Bool 

pattern LChoose :: forall a f. () => (a ~ Bool, ()) => LiftFOE Choose f a Source #

choose' :: forall {k} (tag :: k) f. SendFOE (Tag Choose tag) f => f Bool Source #

choose'' :: forall {k} (key :: k) f. SendFOEBy key Choose f => f Bool Source #

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

Constructors

ChooseH :: forall (f :: Type -> Type) a. 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 a f. SendHOE ChooseH f => f a -> f a -> f a Source #

chooseH' :: forall {k} (tag :: k) a f. SendHOE (TagH ChooseH tag) f => f a -> f a -> f a Source #

chooseH'' :: forall {k} (key :: k) a f. SendHOEBy key ChooseH f => f a -> f a -> f a Source #