You may specify that a different program be used for one of the phases of the compilation system, in place of whatever the driver `ghc' has wired into it. For example, you might want to test a replacement parser. The `-pgm<phase-code><program-name>' option to `ghc' will cause it to use <program-name> for phase <phase-code>, where the codes to indicate the phases are:
code phase --------------------------------------------------- L literate pre-processor P C pre-processor (if -cpp only) p parser C Haskell compiler cO C compiler for `optimised' (normal) compiling c C compiler for `unregisterised' compiling a assembler l linker
If you use the ambiguous `-pgmcOle', it will take it to mean "use program `le' for optimised C compiling."