TreeNormalizer and NodeNormalizer
can be implemented to introduce custom normalization steps.
CompoundNormalizer and NormalizerPass use to
composite pattern to assemble normalization steps freely. All other classes
are concrete normalization steps.