If a program calls exitWith, runghc produces an extra line of output: *** Exception: exit: ExitSuccess or *** Exception: exit: ExitFailure 3 and then exits with status 0. It should do what a ghc-compiled program does: silently exit with the appropriate status.