Ok, I've done the following: - disabled the maximum heap size by default. It can still be enabled with +RTS -M<size> - RTS options are taken from the GHCRTS environment variable in addition to the command line (the command line has precedence). - Compacting garbage collection is enabled when the residency reaches a certain percentage of the maximum heap size (if there is one). Cheers, Simon