<para>HACKER TERRITORY. HACKER TERRITORY. (You were warned.)</para>
- <Sect2 id="dumping-output">
+ <sect2 id="dumping-output">
<title>Dumping out compiler intermediate structures</title>
<indexterm><primary>dumping GHC intermediates</primary></indexterm>
STG-to-STG passes, respectively. (<emphasis>Lots</emphasis>
of output!) So: when we're really desperate:</para>
- <Screen>
+ <screen>
% ghc -noC -O -ddump-simpl -dverbose-simpl -dcore-lint Foo.hs
-</Screen>
+</screen>
</listitem>
</varlistentry>
<para>Let's do this by commenting an example. It's from doing
<option>-ddump-ds</option> on this code:
-<ProgramListing>
+<programlisting>
skip2 m = m : skip2 (m+2)
-</ProgramListing>
+</programlisting>
Before we jump in, a word about names of things. Within GHC,
variables, type constructors, etc., are identified by their
usually printed out when debugging, in some form or another. So
here we go…</para>
-<ProgramListing>
+<programlisting>
Desugared:
Main.skip2{-r1L6-} :: _forall_ a$_4 =>{{Num a$_4}} -> a$_4 -> [a$_4]
{- end CoRec -}
} in skip2.t3Ja
-</ProgramListing>
+</programlisting>
<para>(“It's just a simple functional language” is an
unregisterised trademark of Peyton Jones Enterprises, plc.)</para>
</variablelist>
</sect2>
-</Sect1>
+</sect1>
<!-- Emacs stuff:
;;; Local Variables: ***