A map that applies three functions and a substitution together to a tree and makes sure they are coordinated so that the result is well-typed. The functions are
Replace occurrences of
This(oldOwner) in some prefix of a type
by the corresponding
sym is one of
oldOwners, replace by corresponding symbol in
ownerMap to given symbols
and return a treemap that contains the substitution
between original and mapped symbols.
The tree map with the substitution between originals
and mapped symbols
mapped. Also goes into mapped classes
and substitutes their declarations.
The current tree map composed with a substitution [from -> to]