First draft of type inference, plus type unification/alpha equiv
checking