Add -XImpredicativeTypes, and tighten up type-validity checking (cf Trac 2019)
[ghc-hetmet.git] / docs / users_guide / using.xml
index 9df6eb5..c175ca1 100644 (file)
@@ -73,10 +73,9 @@ module X where
       maintains internally, so you'll be desperately disappointed if
       you try to glob etc. inside <literal>OPTIONS_GHC</literal>.</para>
 
-      <para>NOTE: the contents of OPTIONS_GHC are prepended to the
-      command-line options, so you <emphasis>do</emphasis> have the
-      ability to override OPTIONS_GHC settings via the command
-      line.</para>
+      <para>NOTE: the contents of OPTIONS_GHC are appended to the
+      command-line options, so options given in the source file
+      override those given on the command-line.</para>
 
       <para>It is not recommended to move all the contents of your
       Makefiles into your source files, but in some circumstances, the
@@ -343,6 +342,20 @@ module X where
       <varlistentry>
        <term>
           <cmdsynopsis>
+            <command>ghc --show-iface <replaceable>file</replaceable></command>
+          </cmdsynopsis>
+          <indexterm><primary><option>&ndash;&ndash;--show-iface</option></primary></indexterm>
+        </term>
+       <listitem>
+             <para>Read the interface in
+             <replaceable>file</replaceable> and dump it as text to
+             <literal>stdout</literal>. For example <literal>ghc --show-iface M.hi</literal>.</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>
+          <cmdsynopsis>
             <command>ghc --supported-languages</command>
           </cmdsynopsis>
           <indexterm><primary><option>&ndash;&ndash;supported-languages</option></primary></indexterm>
@@ -409,20 +422,6 @@ module X where
        </listitem>
       </varlistentry>
 
-      <varlistentry>
-       <term>
-         <cmdsynopsis>
-            <command>ghc --print-docdir</command>
-          </cmdsynopsis>
-          <indexterm><primary><option>&ndash;&ndash;print-docdir</option></primary></indexterm>
-        </term>
-       <listitem>
-         <para>Print the path to GHC's documentation directory. Note that
-      some distributions do no include the documentation, in which case
-      this directory may be empty or may not exist.</para>
-       </listitem>
-      </varlistentry>
-
     </variablelist>
 
     <sect2 id="make-mode">
@@ -639,7 +638,7 @@ ghc -c Foo.hs</screen>
        <title>Overriding the default behaviour for a file</title>
 
        <para>As described above, the way in which a file is processed by GHC
-         depends on its suffix.  This behaviour can be overriden using the
+         depends on its suffix.  This behaviour can be overridden using the
          <option>-x</option> option:</para>
 
        <variablelist>
@@ -898,6 +897,16 @@ ghc -c Foo.hs</screen>
        </listitem>
       </varlistentry>
 
+      <varlistentry>
+       <term><option>-Wwarn</option>:</term>
+       <listitem>
+         <indexterm><primary><option>-Wwarn</option></primary></indexterm>
+         <para>Warnings are treated only as warnings, not as errors. This is
+           the default, but can be useful to negate a
+        <option>-Werror</option> flag.</para>
+       </listitem>
+      </varlistentry>
+
     </variablelist>
 
     <para>The full set of warning options is described below.  To turn
@@ -1121,7 +1130,7 @@ f foo = foo { x = 6 }
          
          <para>This option causes a warning to be emitted whenever the 
            module contains an "orphan" instance declaration or rewrite rule.
-           An instance declartion is an orphan if it appears in a module in
+           An instance declaration is an orphan if it appears in a module in
            which neither the class nor the type being instanced are declared
            in the same module.  A rule is an orphan if it is a rule for a
            function declared in another module.  A module containing any
@@ -1593,24 +1602,6 @@ f "2"    = 2
 
        <varlistentry>
          <term>
-            <option>-funfolding-update-in-place=<replaceable>n</replaceable></option>
-            <indexterm><primary><option>-funfolding-update-in-place</option></primary></indexterm>
-          </term>
-         <listitem>
-           <para>Switches on an experimental "optimisation".
-            Switching it on makes the compiler a little keener to
-            inline a function that returns a constructor, if the
-            context is that of a thunk.
-<programlisting>
-   x = plusInt a b
-</programlisting>
-            If we inlined plusInt we might get an opportunity to use
-            update-in-place for the thunk 'x'.</para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
             <option>-funfolding-creation-threshold=<replaceable>n</replaceable></option>:
            <indexterm><primary><option>-funfolding-creation-threshold</option></primary></indexterm>
            <indexterm><primary>inlining, controlling</primary></indexterm>
@@ -1713,7 +1704,7 @@ f "2"    = 2
       is also possible to obtain performance improvements with parallelism
       on programs that do not use concurrency.  This section describes how to
       use GHC to compile and run parallel programs, in <xref
-       linkend="lang-parallel" /> we desribe the language features that affect
+       linkend="lang-parallel" /> we describe the language features that affect
     parallelism.</para>
     
     <sect2 id="parallel-options">