Tip.Passes

Running passes in the Fresh monad

freshPass

Simplifications

simplifyTheory

gently

aggressively

data SimplifyOpts a

removeNewtype

uncurryTheory

negateConjecture

Boolean builtins

ifToBoolOp

boolOpToIf

theoryBoolOpToIf

Match expressions

addMatch

commuteMatch

removeMatch

cseMatch

cseMatchNormal

cseMatchWhy3

fillInCases

Duplicated functions

collapseEqual

removeAliases

Lambda and let lifting

lambdaLift

letLift

axiomatizeLambdas

Building pass pipelines

data StandardPass

class Pass p

unitPass

runPassLinted

data Choice a b

choice

runPasses

parsePasses