- </sect2>
-
-</sect1>
-
-
-<sect1 id="bugs">
- <title>Known bugs or infelicities</title>
-
-<para>GHC has the following known bugs or infelicities:
-<itemizedlist>
-
-<listitem><para>
-GHC only provides tuples up to size 62, and derived tuple instances (for
-Eq, Ord, etc) up to size 15.
-</para></listitem>
-
-<listitem><para>
-GHC can warn about non-exhaustive or overlapping patterns, and usually does so correctly.
-But not always. It gets confused by string patterns, and by guards, and can then
-emit bogus warnings. The entire overlap-check code needs an overhaul really.
-</para></listitem>
-
-
-
-<listitem><para>Dangers with multiple Main modules.</para>
-
- <para>
- GHC does not insist that module <literal>Main</literal> lives in a file called <filename>Main.hs</filename>.
- This is useful if you want multiple versions of <literal>Main</literal>. But there's a danger: when
- compiling module <literal>Main</literal> (regardless of what file it comes from), GHC looks for
- the interface <filename>Main.hi</filename>; it uses this to get version information from the last
- time it recompiled <literal>Main</literal>. The trouble is that this <filename>Main.hi</filename>
- may not correspond to the source file being compiled.
- </para>
- <para>
- Solution: remove <filename>Main.hi</filename> first. A better solution would be for GHC to
- record the source-file filename in the interface file, or even an MD5 checksum.
- </para>
- </listitem>
+ </sect2>
+ </sect1>
+
+
+ <sect1 id="bugs">
+ <title>Known bugs or infelicities</title>
+
+ <para>In addition to the divergences from the Haskell 98 standard
+ listed above, GHC has the following known bugs or
+ infelicities.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para> GHC can warn about non-exhaustive or overlapping
+ patterns (see <xref linkend="options-sanity">, and usually
+ does so correctly. But not always. It gets confused by
+ string patterns, and by guards, and can then emit bogus
+ warnings. The entire overlap-check code needs an overhaul
+ really.</para>
+ </listitem>
+
+ <listitem>
+ <para>Dangers with multiple <literal>Main</literal>
+ modules.</para>
+
+ <para>GHC does not insist that module <literal>Main</literal>
+ lives in a file called <filename>Main.hs</filename>. This is
+ useful if you want multiple versions of
+ <literal>Main</literal>. But there's a danger: when compiling
+ module <literal>Main</literal> (regardless of what file it
+ comes from), GHC looks for the interface
+ <filename>Main.hi</filename>; it uses this to get version
+ information from the last time it recompiled
+ <literal>Main</literal>. The trouble is that this
+ <filename>Main.hi</filename> may not correspond to the source
+ file being compiled.</para>
+
+ <para>Solution: remove <filename>Main.hi</filename> first. A
+ better solution would be for GHC to record the source-file
+ filename in the interface file, or even an MD5 checksum.
+ </para>
+ </listitem>