Projects / DrIFT

DrIFT

DrIFT is a type sensitive preprocessor for Haskell. It extracts type declarations and directives from modules and applies rules to them which generate code. It is intended that the user can add new rules as required. 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. Simple utility functions can also be produced from a type.

Tags
Licenses
Implementation

Recent releases

  •  26 Dec 2007 22:06

    Release Notes: Numerous enhancements and bugfixes.

    •  01 Jun 2004 17:15

      Release Notes: A derivation rule for instances of GhcBinary was added. Record syntax is now allowed on newtype declarations. The 'drift-ghc' script was added to make DrIFT easier to use from ghc, and the instances generated for 'update' have been improved.

      •  09 Nov 2003 06:21

        Release Notes: Deriving 'update' now works with newer versions of ghc. A bug in the precedences specified in derived Show and Read instances was fixed. The generated code no longer produces spurious warnings. Support for strict fields and infix constructors was added.

        •  15 May 2003 10:48

          Release Notes: This version adds help messages and categorization to rules, a small isLiterate fix, printing of debug info in a comment in chaseImports, code cleanups, some changes from Strafunski 1.7, and some autoconf/ automake improvements.

          •  13 Jul 2002 22:26

            Release Notes: All development branches have been merged into one project. This is an autoconf/automake directed build, tested with nhc and ghc.

            Screenshot

            Project Spotlight

            OpenStack4j

            A Fluent OpenStack client API for Java.

            Screenshot

            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.