capture avoiding substitution for all expressions. need
alpha equiv for all as well. a lot of redundent code, but,
I guess one would need generic program to reduce them