Inline vals and remove vals that are aliases to other vals
Notion of alias is a by-value notion, so "good" casts are ignored.
This phase has to be careful not to eliminate vals that are parts of other types
Clears all the state of this optimisation, to be run last.
Does the actual Tree => Tree transformation.