The pugs-DrIFT package

[ Tags: bsd3, library, program, pugs ] [ Propose Tags ]

DrIFT is a type sensitive preprocessor for Haskell. It extracts type declarations and directives from modules. The directives cause rules to be fired on the parsed type declarations, generating new code which is then appended to the bottom of the input file. The rules are expressed as Haskell code, and 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 seperate 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.

[Skip to Readme]


Change log ChangeLog
Dependencies base (==4.*), bytestring, containers, HsSyck, mtl (<, old-time, pretty, random, stm, utf8-string [details]
License BSD3
Author Noel Winstanley
Maintainer Audrey Tang <>
Category Pugs
Home page
Uploaded Sat Sep 24 18:21:38 UTC 2011 by AudreyTang
Distributions NixOS:
Executables pugs-DrIFT
Downloads 1907 total (11 in the last 30 days)
Rating 0.0 (0 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees

Readme for pugs-DrIFT-

[back to package description]


This package contains a source distribution of DrIFT, a tool for automatic
derivation of Haskell class instances. DrIFT was formerly known as Derive.

The current homepage is at:


Contents of this package:

  - src         Directory with the source files of the DrIFT tool
  - example     Directory with examples of using the DrIFT tool
  - docs        Documentation


If you have pulled the source from the darcs repository, you must first build
the autotools scripts by running

 $ autoreconf -i

To configure and install DrIFT from source or from Hackage, you have two options.


You can install through the GNU Autools, like thus:

  $ ./configure --prefix=<dir>
  $ make install

Where <dir> is the directory in which you want to install the tool. Note that
a Haskell compiler (NHC or GHC) must be in your path. Otherwise, supply the
location of a Haskell compiler as follows:

  $ ./configure --prefix=<dir> --with-hc=<Haskell compiler>
  $ make install


You can also install through Cabal, the standard Haskell packaging tool with the usual set of commands:

      $ runhaskell Setup configure # optional --user --prefix=/home/user/bin
      $ runhaskell Setup build
      $ runhaskell Setup install # --user

(Remember, from Darcs requires autoreconf to have been run! If you are installing from Hackage, autoreconf should have already been run in the source tarball.)


You may optionally set the environmental variable $DERIVEPATH to the list of directories you wish to search for modules.

An example:


to run DrIFT, simply pass the Haskell file name as an argument. You may run
'DrIFT --help' to get a summary of the various command line options