Programatica Tools

Directory tools/base/transforms/Deriving

The README file is displayed below the directory index.

NameLast modifiedSize
Parent Directory  -  
BetaReduce.hs06-Jul-2006 02:13 1.3K 
Deriving/18-Dec-2004 06:24 -  
FieldSelectors.hs18-Dec-2004 20:20 836  
Flags.ghc12-Mar-2003 22:55 269  
MapDeclM.hs16-Dec-2004 01:36 688  
MapDeclMBase.hs27-Feb-2002 18:27 281  
MapDeclMBaseStruct.hs16-Dec-2004 01:36 605  
RemoveIrrefPats.hs22-Oct-2002 23:42 1.3K 
RemoveIrrefPatsBase.hs30-Sep-2002 04:32 561  
RemoveIrrefPatsBaseStruct.hs19-Mar-2003 09:42 4.3K 
RemoveListComp.hs18-Dec-2004 06:24 1.4K 
RemoveListCompBase.hs18-Dec-2004 06:24 265  
RemovePatBinds.hs01-Jun-2005 21:58 2.8K 
SimpFieldLabels.hs18-Dec-2004 20:20 3.3K 
SimpFunBind.hs01-Jun-2005 21:58 1.7K 
SimpPatMatch.hs13-Jun-2006 00:15 9.5K 
SimpPatMatchBase.hs18-Dec-2004 21:58 359  
Substitute.hs19-May-2005 07:31 1.0K 
SubstituteBase.hs16-Dec-2004 01:36 358  
SubstituteBaseStruct.hs19-May-2005 07:31 883  
tests/22-Oct-2002 00:29 -  
tstRemPatBind.hs13-Apr-2002 00:05 567  
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.