-fwarn-monomorphism-restriction is now off by default
[ghc-hetmet.git] / docs / users_guide / using.xml
index a82cd52..502c856 100644 (file)
@@ -839,7 +839,16 @@ ghc -c Foo.hs</screen>
        <term><option>-Wall</option>:</term>
        <listitem>
          <indexterm><primary><option>-Wall</option></primary></indexterm>
-         <para>Turns on all warning options.</para>
+         <para>Turns on all warning options that indicate potentially
+         suspicious code.  The warnings that are
+         <emphasis>not</emphasis> enabled by <option>-Wall</option>
+         are:</para>
+          <itemizedlist>
+            <listitem><option>-fwarn-simple-patterns</option></listitem>
+            <listitem><option>-fwarn-tabs</option></listitem>
+            <listitem><option>-fwarn-incomplete-record-updates</option></listitem>
+            <listitem><option>-fwarn-monomorphism-restriction</option></listitem>
+          </itemizedlist>
        </listitem>
       </varlistentry>
 
@@ -1006,7 +1015,8 @@ f foo = foo { x = 6 }
 
          <para>If you would like GHC to check that every top-level
           function/value has a type signature, use the
-          <option>-fwarn-missing-signatures</option> option.  This
+          <option>-fwarn-missing-signatures</option> option.  As part of
+           the warning GHC also reports the inferred type.  The
           option is off by default.</para>
        </listitem>
       </varlistentry>
@@ -1135,6 +1145,20 @@ f "2"    = 2
       </varlistentry>
 
       <varlistentry>
+       <term><option>-fwarn-monomorphism-restriction</option>:</term>
+       <listitem>
+         <indexterm><primary><option>-fwarn-monomorphism-restriction</option></primary></indexterm>
+         <indexterm><primary>monomorphism restriction, warning</primary></indexterm>
+         <para>Have the compiler warn/inform you where in your source
+          the Haskell Monomorphism Restriction is applied.  If applied silently
+         the MR can give rise to unexpected behaviour, so it can be helpful
+         to have an explicit warning that it is being applied.</para>
+
+         <para>This warning is off by default.</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
        <term><option>-fwarn-unused-binds</option>:</term>
        <listitem>
          <indexterm><primary><option>-fwarn-unused-binds</option></primary></indexterm>