In the paradigm of Compilation by Transformation many aspects of compilation are implemented as a series of simple ProgramTransformations on the source code or intermediate representation of a program. Typical aspects that can be formulated as transformations are ProgramDesugaring and ProgramOptimization. The approach is taken to the extreme in GHC. *See also* * Stratego.StrategoLanguage * Hpc.TigerInStratego * Stratego.TransformatiesOpMondrianMetStratego