title: Module loading options in GHCi
body: <p>Why does GHCi have so many different commands for loading modules into a session?</p>
  
  <p>Here are ones I'm aware of, together with their rather confusing explanations from <code>:help</code> in ghci:</p>
  
  <ul>
  <li><code>add [*]&lt;mod&gt;</code> -- add module(s) to the current target set</li>
  <li><code>:module [+/-] [*]&lt;mod&gt;</code> -- set the context for expression evaluation</li>
  <li><code>:load [*]&lt;mod&gt;</code> -- load module(s) and their dependents</li>
  <li><code>:reload &lt;mod&gt;</code> -- reload the current module set. (Note: <code>:help</code> doesn't say that this can take a module argument, but it seems that it can.)</li>
  <li><code>import Mod</code></li>
  </ul>
  
  <p>What do they each do? How does the asterisk change it? Why are there so many? :(</p>