tru :: Term tru = Abstract "t" (Abstract "f" (Variable "t")) fls :: Term fls = Abstract "t" (Abstract "f" (Variable "f")) if' :: Term if' = Abstract "condition" (Abstract "then" (Abstract "else" ( Application (Variable "condition") (Application (Variable "then") (Variable "else")))))