Programatica Tools

Directory tools/base/transforms/Deriving

The README file is displayed below the directory index.

NameLast modifiedSize
Parent Directory  -
MapDeclMBase.hs2002-02-27 18:27 281
tstRemPatBind.hs2002-04-13 00:05 567
RemoveIrrefPatsBase.hs2002-09-30 04:32 561
tests/2002-10-22 00:29 -
RemoveIrrefPats.hs2002-10-22 23:42 1.3K
Flags.ghc2003-03-12 22:55 269
RemoveIrrefPatsBaseStruct.hs2003-03-19 09:42 4.3K
MapDeclM.hs2004-12-16 01:36 688
MapDeclMBaseStruct.hs2004-12-16 01:36 605
SubstituteBase.hs2004-12-16 01:36 358
RemoveListComp.hs2004-12-18 06:24 1.4K
RemoveListCompBase.hs2004-12-18 06:24 265
FieldSelectors.hs2004-12-18 20:20 836
SimpFieldLabels.hs2004-12-18 20:20 3.3K
SimpPatMatchBase.hs2004-12-18 21:58 359
Substitute.hs2005-05-19 07:31 1.0K
SubstituteBaseStruct.hs2005-05-19 07:31 883
RemovePatBinds.hs2005-06-01 21:58 2.8K
SimpFunBind.hs2005-06-01 21:58 1.7K
SimpPatMatch.hs2006-06-13 00:15 9.5K
BetaReduce.hs2006-07-06 02:13 1.3K
Deriving/2020-07-22 12:56 -
Extensible Haskell front-end for the Programatica project - directory base/transforms/Deriving

Extensible Haskell front-end for the Programatica project

What is in this directory (base/transforms)

This directory contains implementations of various source level program transformations. The subdirectory Deriving/ contains modules that generate code for derived instances.

ModulesPurpose
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.