occur check now also checks that free vars are not bound to bound vars (which would escape
their scope otherwise)
new test for unification