title: Does FSI deal well with multi module F# projects?
body: <p>Does FSI deal well with multi module/file F# projects?
  Consider the following project:</p>
  
  <p><em>module.fs:</em></p>
  
  <pre><code>module Xyz
  
  let add x y = x + y
  </code></pre>
  
  <p><em>Program.fs:</em></p>
  
  <pre><code>module Program
  
  open Xyz    
  let result = add 1 2
  </code></pre>
  
  <p>selecting and running the last 2 lines of <code>Program.fs</code> will yield the following FSI error:</p>
  
  <pre><code>Program.fs: error FS0039: The namespace or module 'Xyz' is not defined
  </code></pre>
  
  <p>What is the problem here?</p>
  
  <hr>
  
  <p>So, let's say I have the following project structure:</p>
  
  <pre><code>A.fs
  B.fs
  C.fs
  D.fs
  E.fs
  </code></pre>
  
  <p>I want to run some functions of <code>E.fs</code>. <code>E.fs</code> makes use of all the other <code>.fs</code> files, so I have one <code>open</code> for each one of them. If later on I want to also run some code from any one of the other files, I'll have to repeat the process fo any file that was not <code>#loaded</code> before.</p>
  
  <p>From your suggestions, it seems like to make my <code>E.fs</code> file run on FSI I'll either have to create a separate .fsx file or have a separate</p>
  
  <pre><code>#if INTERACTIVE
  #load "..."
  </code></pre>
  
  <p>for each module I'll use which is IMO quite redundant. Am I missing something here, or is this a clear violation of both KISS and DRY principles?</p>