title: Multiple source files in Haskell
body: <p>I'm writing my first big project in Haskell and I'd like to split it across multiple files. So far, I have written two modules, <code>Parse</code> and <code>Eval</code>. I'd like to have a <code>Main</code> module that just includes these two modules and specifies the <code>main</code> function. I have the files <code>Main.hs</code>, <code>Parse.hs</code>, and <code>Eval.hs</code> and import them in <code>Main</code>, but this happens:</p>
  
  <pre><code>Prelude&gt; :load "~/code/haskell/lisp/Main.hs"
  [1 of 3] Compiling Eval             ( Eval.hs, interpreted )
  [2 of 3] Compiling Parse            ( Parse.hs, interpreted )
  [3 of 3] Compiling Main             ( ~/code/haskell/lisp/Main.hs, interpreted )
  Ok, modules loaded: Main, Parse, Eval.
  *Main&gt; parse parseExpr "" "#b101"
  
  &lt;interactive&gt;:1:0: Not in scope: `parse'
  </code></pre>
  
  <p>The <code>parse</code> function comes from Parsec library, which is imported in <code>Parse.hs</code>. What's wrong?</p>