code: public Type subst(Type t, List<Type> from, List<Type> to) {
          return new Subst(from, to).subst(t);
      }
docs: Substitute all occurrences of a type in `from' with the
  corresponding type in `to' in 't'. Match lists `from' and `to'
  from the right: If lists have different length, discard leading
  elements of the longer list.