title: Haskell: unnecessary binary growth with module imports
body: <p>When i import a (big) module into a Main module in one of the following ways:</p>
  
  <pre><code>import Mymodule
  import qualified Mymodule as M
  import Mymodule (MyDatatype)
  </code></pre>
  
  <p>the compiled binary grows the same huge amount compared to when i don't import that module. This happens regardless of whether i use anything inside that module or not in the Main module. Shouldn't the compiler (i am using GHC on Debian Testing) only add into the binary what is needed to run it?</p>
  
  <p>In my specific case i have a huge Map in Mymodule which i don't use in the Main module. Selectively importing what i really need, did not change the growth of the compiled binary.</p>