simplify subst
better parse logging
nicer match
paper example for lambda lift
common subexpression elimination