<sect3 id="infelicities-syntax">
<title>Context-free syntax</title>
- <itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>GHC is a little less strict about the layout rule when used
+ in <literal>do</literal> expressions. Specifically, the
+ restriction that "a nested context must be indented further to
+ the right than the enclosing context" is relaxed to allow the
+ nested context to be at the same level as the enclosing context,
+ if the enclosing context is a <literal>do</literal>
+ expression.</para>
+
+ <para>For example, the following code is accepted by GHC:
+
+<programlisting>
+main = do args <- getArgs
+ if null args then return [] else do
+ ps <- mapM process args
+ mapM print ps</programlisting>
+
+ </para>
+ </listitem>
+
<listitem>
<para>GHC doesn't do fixity resolution in expressions during
parsing. For example, according to the Haskell report, the
are neither upper nor lower case will still be identified as
alphabetic by <literal>isAlpha</literal>.</para>
</listitem>
+ </varlistentry>
</variablelist>
</sect3>
</sect2>
<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>
+ <para>The bug tracker lists bugs that have been reported in GHC but not
+ yet fixed: see the <ulink url="http://sourceforge.net/projects/ghc/">SourceForge GHC
+ page</ulink>. In addition to those, GHC also has the following known bugs
+ or infelicities. These bugs are more permanent; it is unlikely that
+ any of them will be fixed in the short term.</para>
<sect2 id="bugs-ghc">
<title>Bugs in GHC</title>
url="http://research.microsoft.com/~simonpj/Papers/inlining">
Secrets of the GHC inliner</ulink>.</para>
</listitem>
+
+ <listitem>
+ <para>GHC does not keep careful track of
+ what instance declarations are 'in scope' if they come from other packages.
+ Instead, all instance declarations that GHC has seen in other
+ packages are all in scope everywhere, whether or not the
+ module from that package is used by the command-line
+ expression. This bug affects only the <option>--make</option> mode and
+ GHCi.</para>
+ </listitem>
+
</itemizedlist>
</sect2>
module (whatever that is).</para>
</listitem>
- <listitem>
- <para>GHCi does not keep careful track of what instance
- declarations are 'in scope' if they come from other packages.
- Instead, all instance declarations that GHC has seen in other
- packages are all in scope everywhere, whether or not the
- module from that package is used by the command-line
- expression.</para>
- </listitem>
-
<listitem>
<para>On Windows, there's a GNU ld/BFD bug
whereby it emits bogus PE object files that have more than
<!-- Emacs stuff:
;;; Local Variables: ***
;;; mode: xml ***
- ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
+ ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; End: ***
-->