Ajhc is a fork of jhc.
The jhc is a haskell compiler which aims to produce the most efficient
programs possible via whole program analysis and other optimizations.
The jhc is very minimalist in that it does not have a precompiled run time
system, but rather generates what is needed as part of the compilation
process. However, back ends do have specific run-time representations of
data, which can be affected by things like the choice of garbage collector.
Perhaps you can get internal overview with following compile flow image: