<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>
in the inadvertent cyclic definition <literal>let x = ... x
... in</literal>.</para>
- <para>Consequently, this option does
+ <para>Consequently, this option
<emphasis>will</emphasis> complain about cyclic recursive
definitions.</para>
</listitem>
</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>