Repetitive Transformation
One transformation may expose another opportunity for transformation:
(+ (* x 0) y) (+ 0 y) y
An easy way to handle this is to walk through the tree, transforming what can be done, until no further transformations are possible; this is called a fixed point or fixpoint.
The function transformfp transforms an expression repeatedly until it reaches a fixpoint.