<entry>dynamic</entry>
<entry>-</entry>
</row>
+ <row>
+ <entry><option>-fno-print-bind-result</option></entry>
+ <entry><link linkend="ghci-stmts">Turn off printing of binding results in GHCi</link></entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
<entry><option>-fno-th</option></entry>
</row>
<row>
+ <entry><option>-ftype-families</option></entry>
+ <entry>Enable <link linkend="type-families">type families</link>.</entry>
+ <entry>dynamic</entry>
+ <entry><option>-fno-type-families</option></entry>
+ </row>
+ <row>
<entry><option>-fbang-patterns</option></entry>
<entry>Enable <link linkend="bang-patterns">bang patterns</link>.</entry>
<entry>dynamic</entry>
</row>
<row>
<entry><option>-Wall</option></entry>
- <entry>enable all warnings</entry>
+ <entry>enable almost all warnings (details in <xref linkend="options-sanity"/>)</entry>
<entry>dynamic</entry>
<entry><option>-w</option></entry>
</row>
<entry><option>-fno-warn-hi-shadowing</option></entry>
</row>
+ <row>
+ <entry><option>-fwarn-implicit-prelude</option></entry>
+ <entry>warn when the Prelude is implicitly imported</entry>
+ <entry>dynamic</entry>
+ <entry><option>-fno-warn-implicit-prelude</option></entry>
+ </row>
+
<row>
<entry><option>-fwarn-incomplete-patterns</option></entry>
<entry>warn when a pattern match could fail</entry>
<tbody>
<row>
<entry><option>-fcase-merge</option></entry>
- <entry>Enable case-merging</entry>
+ <entry>Enable case-merging. Implied by <option>-O</option>.</entry>
<entry>dynamic</entry>
<entry><option>-fno-case-merge</option></entry>
</row>
<row>
<entry><option>-fdo-eta-reduction</option></entry>
- <entry>Enable eta-reduction</entry>
+ <entry>Enable eta-reduction. Implied by <option>-O</option>.</entry>
<entry>dynamic</entry>
<entry><option>-fno-do-eta-reduction</option></entry>
</row>
</row>
<row>
- <entry><option>-frules-off</option></entry>
- <entry>Switch off all rewrite rules (including rules
- generated by automatic specialisation of overloaded functions)</entry>
- <entry>static</entry>
- <entry><option>-frules-off</option></entry>
- </row>
-
- <row>
<entry><option>-fignore-asserts</option></entry>
<entry>Ignore assertions in the source</entry>
<entry>dynamic</entry>
</row>
<row>
- <entry><option>-fliberate-case-threshold</option></entry>
- <entry>Tweak the liberate-case optimisation (default: 10)</entry>
- <entry>static</entry>
- <entry><option>-fno-liberate-case-threshold</option></entry>
- </row>
-
- <row>
<entry><option>-fomit-interface-pragmas</option></entry>
<entry>Don't generate interface pragmas</entry>
<entry>dynamic</entry>
</row>
<row>
- <entry><option>-fno-cse</option></entry>
- <entry>Turn off common sub-expression</entry>
+ <entry><option>-fcse</option></entry>
+ <entry>Turn on common sub-expression elimination. Implied by <option>-O</option>.</entry>
<entry>dynamic</entry>
- <entry>-</entry>
+ <entry>-fno-cse</entry>
</row>
<row>
- <entry><option>-fno-full-laziness</option></entry>
- <entry>Turn off full laziness (floating bindings outwards).</entry>
+ <entry><option>-ffull-laziness</option></entry>
+ <entry>Turn on full laziness (floating bindings outwards). Implied by <option>-O</option>.</entry>
<entry>dynamic</entry>
- <entry>-ffull-laziness</entry>
+ <entry>-fno-full-laziness</entry>
</row>
<row>
- <entry><option>-fno-pre-inlining</option></entry>
- <entry>Turn off pre-inlining</entry>
- <entry>static</entry>
- <entry>-</entry>
+ <entry><option>-frewrite-rules</option></entry>
+ <entry>Switch on all rewrite rules (including rules
+ generated by automatic specialisation of overloaded functions).
+ Implied by <option>-O</option>. </entry>
+ <entry>dynamic</entry>
+ <entry><option>-fno-rewrite-rules</option></entry>
</row>
<row>
- <entry><option>-fno-strictness</option></entry>
- <entry>Turn off strictness analysis</entry>
+ <entry><option>-fstrictness</option></entry>
+ <entry>Turn on strictness analysis. Implied by <option>-O</option>.</entry>
<entry>dynamic</entry>
- <entry>-</entry>
+ <entry>-fno-strictness</entry>
+ </row>
+
+ <row>
+ <entry><option>-fspec-constr</option></entry>
+ <entry>Turn on the SpecConstr transformation. Implied by <option>-O2</option>.</entry>
+ <entry>dynamic</entry>
+ <entry>-fno-spec-constr</entry>
+ </row>
+
+ <row>
+ <entry><option>-fliberate-case</option></entry>
+ <entry>Turn on the liberate-case transformation. Implied by <option>-O2</option>.</entry>
+ <entry>dynamic</entry>
+ <entry>-fno-liberate-case</entry>
+ </row>
+
+ <row>
+ <entry><option>-fspec-threshold</option>=<replaceable>n</replaceable></entry>
+ <entry>Set the size threshold for function specialisation to <replaceable>n</replaceable>, for both
+ the liberate-case and SpecConstr transformations (default: 200)</entry>
+ <entry>static</entry>
+ <entry><option>-</option></entry>
</row>
<row>
<entry>static</entry>
<entry><option>-fno-unfolding-use-threshold</option></entry>
</row>
+
+ <row>
+ <entry><option>-fno-pre-inlining</option></entry>
+ <entry>Turn off pre-inlining</entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
<entry>dynamic</entry>
<entry>-</entry>
</row>
- <row>
- <entry><option>-fno-print-bind-result</option></entry>
- <entry><link linkend="ghci-stmts">Turn off printing of binding results in GHCi</link></entry>
- <entry>dynamic</entry>
- <entry>-</entry>
- </row>
</tbody>
</tgroup>
</informaltable>