# Hat system requirements

### You will need...

To build and use Hat, you will need GNU make, a Haskell'98 compiler that supports the standard FFI, and hmake. Here are the minimum versions of compilers that we recommend: anything earlier than these is unlikely to interoperate correctly with Hat.

compiler | minimum version
--- | ---
ghc | 5.00
nhc98 | 1.14
hmake | 3.05

You only need one Haskell compiler - the Hat installation procedure will detect what you already have and use it. However, it is absolutely essential that you have hmake. Not only is it needed to build the various Hat tools, but you will also need it when you want to build tracing versions of your own programs.

You must also have a Unix-like operating system environment with X windows, and in particular the xterm terminal emulator supporting ANSI colour codes. This is used when you start one browsing tool from within another, to bring up a new text window. Unfortunately, we don't know what the equivalent would be in a Windows environment, so for the moment, Windows is not supported. (We don't know about MacOS X either, but it might be rather easier to find a replacement for xterm there.)

### GHC requirements

If you have ghc, then a package is built, containing various Hat libraries. The installation procedure attempts to install the new `hat' package in the system directories that belong to ghc. You must have the appropriate permissions to write into those directories, and sufficient permissions to update the system-wide ghc package configuration. (The installation and configuration is performed automatically.)

### nhc98 requirements

If you have nhc98, then a package is built, containing various Hat libraries. The installation procedure attempts to install the new `hat' package in the system directories that belong to nhc98. You must have the appropriate permissions to write into those directories. (The installation is performed automatically.)

The latest updates to these pages are available on the WWW from `http://www.cs.york.ac.uk/fp/hat/`

This page last modified: 2002.06.11
York Functional Programming Group