From the hmakehome page,
"hmake is an intelligent compilation management tool for
Haskell programs. It automatically extracts dependencies between
source modules, and issues the appropriate compiler commands to
rebuild only those that have changed, given just the name of the
program or module that you want to build. Yes, you need never write a
Makefile again!"hmake also does a good job of handling the
variety of compilers that might be installed on a user's system. It
maintains a list of compilers and can switch between them according to
a flag. It also has a default compiler.

hmake is particularly interesting to us because it is written
in Haskell and handles the task of compiling Haskell tools quite well.
One shortcoming is that it is not extensible on a per-project basis:
it is difficult to add support for new preprocessors without editing
the hmake code itself. It does, however, perform a lot of the tasks
that Distribution.Build will ultimately have to perform, and we hope to reuse
some of the code.

Another interesting feature of hmake is the
Haskell Interactive tool (hi). hi
"is, an interpreter-like environment that you can wrap over any
common Haskell compiler to achieve an interactive development
style." This is interesting because it would be nice to have a
generic /usr/bin/haskell which would use the
default compiler to interpret Haskell scripts.