in the same directory and you can't call them all
<filename>Main.hs</filename>.</para>
+ <para>The search path for finding source files is specified with
+ the <option>-i</option> option on the GHCi command line, like
+ so:</para>
+<screen>ghci -i<replaceable>dir<subscript>1</subscript></replaceable>:...:<replaceable>dir<subscript>n</subscript></replaceable></screen>
+
+ <para>or it can be set using the <literal>:set</literal> command
+ from within GHCi (see <xref
+ linkend="ghci-cmd-line-options">)<footnote><para>Note that in
+ GHCi, and <option>––make</option> mode, the <option>-i</option>
+ option is used to specify the search path for
+ <emphasis>source</emphasis> files, whereas in standard
+ batch-compilation mode the <option>-i</option> option is used to
+ specify the search path for interface files, see <xref
+ linkend="options-finding-imports">.</para> </footnote></para>
+
<para>One consequence of the way that GHCi follows dependencies
to find modules to load is that every module must have a source
file. The only exception to the rule is modules that come from
<para>HINT: since GHCi will only use a compiled object file if it
can sure that the compiled version is up-to-date, a good technique
when working on a large program is to occasionally run
- <literal>ghc --make</literal> to compile the whole project (say
+ <literal>ghc ––make</literal> to compile the whole project (say
before you go for lunch :-), then continue working in the
interpreter. As you modify code, the new modules will be
interpreted, but the rest of the project will remain
<sect1 id="ghci-invokation">
<title>Invoking GHCi</title>
<indexterm><primary>invoking</primary><secondary>GHCi</secondary></indexterm>
- <indexterm><primary><option>--interactive</option></primary></indexterm>
+ <indexterm><primary><option>––interactive</option></primary></indexterm>
<para>GHCi is invoked with the command <literal>ghci</literal> or
- <literal>ghc --interactive</literal>. One or more modules or
+ <literal>ghc ––interactive</literal>. One or more modules or
filenames can also be specified on the command line; this
instructs GHCi to load the specified modules or filenames (and all
the modules they depend on), just as if you had said
</screen>
<para>Or I could define a simple way to invoke
- “<literal>ghc --make Main</literal>” in the
+ “<literal>ghc ––make Main</literal>” in the
current directory:</para>
<screen>
-Prelude> :def make (\_ -> return ":! ghc --make Main")
+Prelude> :def make (\_ -> return ":! ghc ––make Main")
</screen>
</listitem>
</variablelist>
</sect2>
- <sect2>
+ <sect2 id="ghci-cmd-line-options">
<title>Setting GHC command-line options in GHCi</title>
<para>Normal GHC command-line options may also be set using