has been specified, then the object filename is
<replaceable>dir</replaceable>/<replaceable>mod</replaceable>.<replaceable>osuf</replaceable>,
where <replaceable>mod</replaceable> is the module name with
- dots replaced by slashes.</para>
+ dots replaced by slashes. GHC will silently create the necessary directory
+ structure underneath <replaceable>dir</replaceable>, if it does not
+ already exist.</para>
</listitem>
</itemizedlist>
<variablelist>
<varlistentry>
<term>
- <option>-no-recomp</option>
- <indexterm><primary><option>-recomp</option></primary></indexterm>
- <indexterm><primary><option>-no-recomp</option></primary></indexterm>
+ <option>-fforce-recomp</option>
+ <indexterm><primary><option>-fforce-recomp</option></primary></indexterm>
+ <indexterm><primary><option>-fno-force-recomp</option></primary></indexterm>
</term>
<listitem>
<para>Turn off recompilation checking (which is on by
<programlisting>
data R (x :: * -> *) y
</programlisting>
+You cannot use <literal>deriving</literal> on a data type declaration; write in
+<literal>instance</literal> declaration instead.
</para></listitem>
<listitem><para> Class declarations is exactly as in Haskell, except that you may not put
-default method declarations. You can also omit all the class methods entirely.
+default method declarations. You can also omit all the superclasses and class
+methods entirely; but you must either omit them all or put them all in.
</para></listitem>
-<listitem><para> Do not include instance declarations. There is a complication to do with
-how the dictionary functions are named. It may well work, but it's not a well-tested feature.
+<listitem><para> You can include instance declarations just as in Haskell; but omit the "where" part.
</para></listitem>
</itemizedlist>
</para>