Fix Trac #2518: add hs-boot files as an infelicty
[ghc-hetmet.git] / docs / users_guide / bugs.xml
index ead6253..4d79d24 100644 (file)
       
       <itemizedlist>
        <listitem>
-         <para>The Haskell report specifies that programs may be
-         written using Unicode.  GHC only accepts the ISO-8859-1
-         character set at the moment.</para>
-       </listitem>
-
-       <listitem>
          <para>Certain lexical rules regarding qualified identifiers
          are slightly different in GHC compared to the Haskell
          report.  When you have
@@ -104,14 +98,28 @@ main = do args &lt;- getArgs
 
       <para>GHC's typechecker makes all pattern bindings monomorphic
       by default; this behaviour can be disabled with
-      <option>-fno-mono-pat-binds</option>.  See <xref
+      <option>-XNoMonoPatBinds</option>.  See <xref
       linkend="options-language" />.</para>
     </sect3>
       
       <sect3 id="infelicities-Modules">
        <title>Module system and interface files</title>
        
-       <para>None known.</para>
+       <para>GHC requires the use of <literal>hs-boot</literal>
+         files to cut the recursive loops among mutually recursive modules
+         as described in <xref linkend="mutual-recursion"/>.  This more of an infelicity
+           than a bug: the Haskell Report says 
+         (<ulink url="http://haskell.org/onlinereport/modules.html#sect5.7">Section 5.7</ulink>) "Depending on the Haskell
+       implementation used, separate compilation of mutually
+       recursive modules may require that imported modules contain
+       additional information so that they may be referenced before
+       they are compiled. Explicit type signatures for all exported
+       values may be necessary to deal with mutual recursion. The
+       precise details of separate compilation are not defined by
+       this Report."
+
+       </para>
+
     </sect3>
 
     <sect3 id="infelicities-numbers">
@@ -183,6 +191,16 @@ checking for duplicates.  The reason for this is efficiency, pure and simple.
               alphabetic by <literal>isAlpha</literal>.</para>
            </listitem>
          </varlistentry>
+
+         <varlistentry>
+           <term>Strings treated as ISO-8859-1</term>
+           <listitem>
+             <para>
+            Various library functions, such as <literal>putStrLn</literal>,
+            treat Strings as if they were ISO-8859-1 rather than UTF-8.
+          </para>
+           </listitem>
+         </varlistentry>
        </variablelist>
     </sect3>
   </sect2>
@@ -340,7 +358,7 @@ checking for duplicates.  The reason for this is efficiency, pure and simple.
         the problem would impose an extra overhead on every
         compilation.  So the bug remains un-fixed.  There is more
         background in <ulink
-        url="http://research.microsoft.com/~simonpj/Papers/inlining">
+        url="http://research.microsoft.com/~simonpj/Papers/inlining/">
         Secrets of the GHC inliner</ulink>.</para>
       </listitem>