The GHC documentation lists a lot of tweaks that can be done to the garbage collector.
However, Haskell spin-offs like
Timber implement their own incremental garbage collector that is better suitable for real-time usage.
Did someone already fiddle with GHC's gc flags so it works better for real-time applications, like games and simulations?