
DrIFT automates instance derivation for classes that aren't supported by the standard compilers. In addition, instances can be produced in separate modules to that containing the type declaration. This allows instances to be derived for a type after the original module has been compiled. As a bonus, simple utility functions can also be produced from a type.
Features:
- DrIFT comes with a set of rules to produce instances for all
derivable classes given in the Haskell Prelude. There are also a
number of extra useful rules to derive instances of a variety of
useful classes.
- DrIFT performs import chasing to find the definition of a type.
- Code is generated using pretty-printing combinators. This means
that the output is (fairly) well formatted, and easy on the eye.
- Effort has been made to make the rule interface as easy to use as
possible. This is to allow users to add rules to generate code
specific to their own projects. As the rules are themselves
written in Haskell, the user doesn't have to learn a new language
to express rules.