hasmtlib-2.2.0: A monad for interfacing with external SMT solvers
Safe HaskellSafe-Inferred
LanguageGHC2021

Language.Hasmtlib.Iteable

Synopsis

Documentation

class Iteable b a where Source #

If condition (p :: b) then (t :: a) else (f :: a)

>>> ite true "1" "2"
    "1"
>>> ite false 100 42
    42

Minimal complete definition

Nothing

Methods

ite :: b -> a -> a -> a Source #

default ite :: (Iteable b c, Applicative f, f c ~ a) => b -> a -> a -> a Source #

Instances

Instances details
Iteable Bool a Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Bool -> a -> a -> a Source #

Iteable (Expr 'BoolSort) () Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> () -> () -> () Source #

Iteable (Expr 'BoolSort) a => Iteable (Expr 'BoolSort) (Identity a) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> Identity a -> Identity a -> Identity a Source #

Iteable (Expr 'BoolSort) a => Iteable (Expr 'BoolSort) (First a) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> First a -> First a -> First a Source #

Iteable (Expr 'BoolSort) a => Iteable (Expr 'BoolSort) (Last a) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> Last a -> Last a -> Last a Source #

Iteable (Expr 'BoolSort) a => Iteable (Expr 'BoolSort) (Dual a) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> Dual a -> Dual a -> Dual a Source #

Iteable (Expr 'BoolSort) a => Iteable (Expr 'BoolSort) (Product a) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> Product a -> Product a -> Product a Source #

Iteable (Expr 'BoolSort) a => Iteable (Expr 'BoolSort) (Sum a) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> Sum a -> Sum a -> Sum a Source #

Iteable (Expr 'BoolSort) a => Iteable (Expr 'BoolSort) (Seq a) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> Seq a -> Seq a -> Seq a Source #

Iteable (Expr 'BoolSort) a => Iteable (Expr 'BoolSort) (Tree a) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> Tree a -> Tree a -> Tree a Source #

Iteable (Expr 'BoolSort) (Expr t) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> Expr t -> Expr t -> Expr t Source #

Iteable (Expr 'BoolSort) a => Iteable (Expr 'BoolSort) (Maybe a) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> Maybe a -> Maybe a -> Maybe a Source #

Iteable (Expr 'BoolSort) a => Iteable (Expr 'BoolSort) [a] Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> [a] -> [a] -> [a] Source #

(Iteable (Expr 'BoolSort) a, Iteable (Expr 'BoolSort) b) => Iteable (Expr 'BoolSort) (a, b) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> (a, b) -> (a, b) -> (a, b) Source #

(Iteable (Expr 'BoolSort) a, Iteable (Expr 'BoolSort) b, Iteable (Expr 'BoolSort) c) => Iteable (Expr 'BoolSort) (a, b, c) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> (a, b, c) -> (a, b, c) -> (a, b, c) Source #

(Iteable (Expr 'BoolSort) a, Iteable (Expr 'BoolSort) b, Iteable (Expr 'BoolSort) c, Iteable (Expr 'BoolSort) d) => Iteable (Expr 'BoolSort) (a, b, c, d) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) Source #

(Iteable (Expr 'BoolSort) a, Iteable (Expr 'BoolSort) b, Iteable (Expr 'BoolSort) c, Iteable (Expr 'BoolSort) d, Iteable (Expr 'BoolSort) e) => Iteable (Expr 'BoolSort) (a, b, c, d, e) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) Source #

(Iteable (Expr 'BoolSort) a, Iteable (Expr 'BoolSort) b, Iteable (Expr 'BoolSort) c, Iteable (Expr 'BoolSort) d, Iteable (Expr 'BoolSort) e, Iteable (Expr 'BoolSort) f) => Iteable (Expr 'BoolSort) (a, b, c, d, e, f) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> (a, b, c, d, e, f) -> (a, b, c, d, e, f) -> (a, b, c, d, e, f) Source #

(Iteable (Expr 'BoolSort) a, Iteable (Expr 'BoolSort) b, Iteable (Expr 'BoolSort) c, Iteable (Expr 'BoolSort) d, Iteable (Expr 'BoolSort) e, Iteable (Expr 'BoolSort) f, Iteable (Expr 'BoolSort) g) => Iteable (Expr 'BoolSort) (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> (a, b, c, d, e, f, g) -> (a, b, c, d, e, f, g) -> (a, b, c, d, e, f, g) Source #

(Iteable (Expr 'BoolSort) a, Iteable (Expr 'BoolSort) b, Iteable (Expr 'BoolSort) c, Iteable (Expr 'BoolSort) d, Iteable (Expr 'BoolSort) e, Iteable (Expr 'BoolSort) f, Iteable (Expr 'BoolSort) g, Iteable (Expr 'BoolSort) h) => Iteable (Expr 'BoolSort) (a, b, c, d, e, f, g, h) Source # 
Instance details

Defined in Language.Hasmtlib.Iteable

Methods

ite :: Expr 'BoolSort -> (a, b, c, d, e, f, g, h) -> (a, b, c, d, e, f, g, h) -> (a, b, c, d, e, f, g, h) Source #