Hat is a source-level tracer for Haskell 98, the standard lazy functional programming language. Hat
is a tool that gives the user access to otherwise invisible information about a computation.
Hat is portable between compilers: it works with both ghc and nhc98. It also supports various
language extensions, such as the FFI, multi-parameter type classes, functional dependencies, and
hierarchical module namespaces.