Software

Haskell compilation tools:
nhc98 nhc98 is a compiler for the complete Haskell'98 language. It supports the new common primitive FFI (Foreign Function Interface), and includes the most advanced space-profiling facilities of all Haskell implementations. Most importantly, it allows graphical debugging of programs using both Hat and HOOD.
Hat Does your Haskell program give wrong output, produce a runtime error, or fail to terminate? Using Hat (the Haskell Tracer system), with its trace browsers hat-trail, hat-stack, hat-observe, and hat-detect, you can examine in detail the causes of any of these faults.
hmake hmake is a compilation manager for Haskell. It automatically determines the dependencies between separate modules and does the minimum compilation required to keep everything up-to-date. No need to write Makefiles ever again! Works with nhc98, hbc, and ghc. (Now at version 3.06.)
hi hi is an interactive program development environment rather like the Hugs interpreter, but it uses a compiler to gain runtime speed. Based on the hmake compilation manager, it can use whichever Haskell compiler you prefer. (Packaged with hmake.)
Auburn Auburn is Graeme Moss's kit for benchmarking implementations of lazy data structures. Give it several implementations of an ADT (abstract data type) and it will tell you which one is best for your particular application.
DrIFT DrIFT is Noel Winstanley's preprocessor for deriving automatic instances of your own Haskell class declarations. We distribute a version updated to Haskell'98.
cpphs cpphs is a simple Haskell replacement for the ubiquitous C-preprocessor. Since gcc-3.2, the behaviour of cpp has been changing in ways which are increasing incompatible with Haskell's syntax. This simple replacement does conditionals and inclusions in the traditional manner, without fouling up on line continuations, prime characters, and so on. (It does not yet do in-line macro expansion outside conditions.)
Application Software written in Haskell:
Xtract Xtract is a `grep'-like command-line tool for searching XML and HTML documents.
HaXml HaXml is a toolkit of Haskell modules for processing XML documents, including an XML parser and pretty printer: Combinators is a combinator library for searching, transforming, and generating documents; Dtd2Haskell generates Haskell code from a DTD to treat documents as fully-typed Haskell data; Haskell2Xml generates code to write a DTD and documents from any data structure originally in Haskell.
lp2fp lp2fp is a program-translator from Prolog to Haskell.
Amusing little toys:
HsColour Colourise Haskell source code in HTML or ANSI terminal screen codes.
Roman numeral converter Convert decimal numbers to Roman numerals and back again.
remorse The winner of the 0th International Obfuscated Haskell Contest (2003).
Obsolete compilers for Haskell:
nhc13 Niklas Rojemo's older compiler for Haskell 1.3, designed to produce very space-efficient code. Has the same advanced space profiler as nhc98. Older versions of GreenCard and hmake are included.
York gofcc Mark Jones's Gofer interpretive compiler extended with: a profiler offering producer, construction, and retainer information; and several variants of a real-time garbage collector. This package is pretty old now.
Embedded gofer Mark Jones's Gofer interpreter, extended with: communicating processes; and several variants of a real-time garbage collector. This package is pretty old now.

Page last updated 21 July 2005