This directory contains implementations of various source level
program transformations.
The subdirectory Deriving/
contains
modules that generate code for derived instances.
Modules | Purpose |
---|---|
FieldSelectors | A function that generates selector functions for data constructors with labelled fields |
MapDeclM, MapDeclMBase, MapDeclMBaseStruct | Monadic traversal of all declarations in an abstract syntax tree |
RemoveIrrefPats, RemoveIrrefPatsBase, RemoveIrrefPatsBaseStruct | Transform away irrefutable patterns |
RemoveListComp, RemoveListCompBase | Transform away list comprehensions (section 3.11 in the Haskell 98 report) |
RemovePatBinds | Transform away pattern bindings |
SimpFunBinds | Simplify function bindings (similar to section 4.4.3.1 in the Haskell 98 report) |
SimpPatMatch, SimpPatMatchBase | Pattern match simplification (as described in section 3.17.3 of the Haskell 98 report) |
Substitute, SubstituteBase, SubstituteBaseStruct | Substitute expressions for variables in expressions. Apply a function to all expressions in a larger structure. |