I&#39;m trying to do the following from Chapter 5 of &quot;Real World Haskell&quot;:<br><br><div style="margin-left: 40px;">Our choice of naming for the source file and
      function is deliberate.  To create an executable, <span class="command"><strong>ghc</strong></span>
      expects a module named <code class="code">Main</code> that contains a
      function named <code class="function">main</code>.  The
      <code class="function">main</code> function is the one that will be
      called when we run the program once we&#39;ve built it. <span id="comments_x_ci" class="comment"><a class="commenttoggle" id="toggle_x_ci" href="comments:%20show%20/%20hide">6 comments</a></span></div><pre style="margin-left: 40px;" id="id598666" class="programlisting">
<strong class="userinput"><code>ghc -o simple Main.hs SimpleJSON.o</code></strong></pre><div style="margin-left: 40px;">---from <a href="http://book.realworldhaskell.org/read/writing-a-library-working-with-json-data.html">http://book.realworldhaskell.org/read/writing-a-library-working-with-json-data.html</a><br>
</div><br>When I do that, I get this error:<br><br><div style="margin-left: 40px;"><span style="font-family: courier new,monospace;">C:\ch05&gt;ghc -o simple Main.hs SimpleJSON.o</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">[2 of 2] Compiling Main             ( Main.hs, Main.o )</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Linking simple.exe ...</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">SimpleJSON.o:fake:(.data+0x0): multiple definition of `SimpleJSON_getArray_closure&#39;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">.\SimpleJSON.o:fake:(.data+0x0): first defined here</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">SimpleJSON.o:fake:(.text+0x54): multiple definition of `SimpleJSON_getArray_info&#39;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">.\SimpleJSON.o:fake:(.text+0x54): first defined here</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">SimpleJSON.o:fake:(.data+0x4): multiple definition of `SimpleJSON_getObject_closure&#39;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">.\SimpleJSON.o:fake:(.data+0x4): first defined here</span><br>
</div><br>What&#39;s going wrong here?<br><br>