back to a non-prolog term representation, with variables indexed by
integers, and integer-contexts to scope free variables of a term.
Therefore, new module Term.Subst to handle substitutions