+ <h2>What Happens When</h2>
+ <p>
+ Inside the Haskell compiler proper (<code>hsc</code>), a whole series of
+ stages (``passes'') are executed in order to transform your Haskell program
+ into C or native code. This process is orchestrated by
+ <code>main/HscMain.hscMain</code> and its relative
+ <code>hscReComp</code>. The latter directly invokes, in order,
+ the parser, the renamer, the typechecker, the desugarer, the
+ simplifier (Core2Core), the CoreTidy pass, the CorePrep pass,
+ conversion to STG (CoreToStg), the interface generator
+ (MkFinalIface), the code generator, and code output. The
+ simplifier is the most complex of these, and is made up of many
+ sub-passes. These are controlled by <code>buildCoreToDo</code>,
+ as described below.
+