Hat download page
Please be warned that Hat is not under active development. It is quite
likely that you will encounter problems when trying to configure,
install, or use it, especially if you use newer versions of ghc.
The latest stable release of Hat is 2.06, available in various
distribution formats (listed below). Important patches for the stable
version are also provided (at the bottom of the page). The development
tree is at version 2.07 and is mainly available via
Bugfixes and important changes to the system are described in the
release notes for each version.
Don't forget to read the system requirements,
first, and then the installation instructions.
Tarfiles and RPMs:
RPMs for RedHat:
Known to work with the following compiler versions upwards:
All the documents available on the web are included in the source package.
(* Please note that options/instructions for out-of-date packages
may differ slightly from the ones on the web. Always follow the
instructions from the package itself.)
The installation instructions should
be comprehensive, but if you have any problems, please mail
(You do not need to be a member of the list to post to it.)
|patch name ||patch to
||date ||fixes what problem?|
||Several small configuration fixes for building Hat with
ghc-6.4 and/or gcc-4.x compilers.
||This patch fixes the directory and file names generated by hat-trans
when the original source code is referenced by an upward relative path
such as ../../code. This can particularly occur if you use a
-Idir or -idir option to hmake.
||A replacement for the file src/hatlib/hat.cabal,
exposing more of internal modules of Hat. This is needed if you
encounter an error like "Could not find module `Hat.PreludeBuiltin'"
||A patch to fix the translation of pattern-bindings at the toplevel.
||This patch is a cumulative patch that includes the two listed below
(redefine and typesyn), and in addition fixes the following problem:
In the transformation of a module that defines instances of an
imported class whose methods are only in scope qualified, any
generated uses of the method names must be qualified too.
||A Prelude entity redefined in a user module led to some overlapping
auxiliary functions in the hat-transformed module. This patch
ensures that a Prelude function is not imported if there is a
||Some complex type synonyms (renaming arrow (function) types)
led to incorrect types in the hat-transformed code.
||Enable hat-trans to build with the latest version of hmake (3.06).
||Fix a pretty-printing bug in hat-trans, e.g. the transformed version
of f = \ ~(a,b) -> 1 was printed wrongly.
||On some machines (e.g. Solaris), an extra #include is needed to
get hold of the ntohl() macro.
||This file is missing from the distribution tarfile. You will
only need it on platforms where the builtin `echo' command does
not understand the `-n' option.
The latest updates to these pages are available on the WWW from
This page last modified: 2nd Oct 2008
York Functional Programming Group