no need for local environments, the trail is enough.
in apply and unification/matching, use a hidden context for allocating fresh names for bound variables
during unification