tip-lib-0.2.2: tons of inductive problems - support library and tools

Safe HaskellNone
LanguageHaskell2010

Tip.Pass.Booleans

Synopsis

Documentation

theoryBoolOpToIf :: Ord a => Theory a -> Theory a Source

Transforms boolean operators to if, but not in expression contexts.

boolOpToIf :: (Ord a, TransformBi (Expr a) (f a)) => f a -> f a Source

Transforms and, or, =>, not and = and distinct on Bool into ite (i.e. match)

ifToBoolOp :: TransformBi (Expr a) (f a) => f a -> f a Source

Transforms ite (match) on boolean literals in the branches into the corresponding builtin boolean function.

data BoolNames a Source

Names to replace the builtin boolean type with

Constructors

BoolNames 

Fields

boolName :: a
 
trueName :: a
 
falseName :: a
 
isTrueName :: a
 
isFalseName :: a
 

removeBuiltinBoolFrom :: forall f a. (TransformBi (Type a) (f a), TransformBi (Pattern a) (f a), TransformBi (Head a) (f a)) => BoolNames a -> f a -> f a Source