I&#39;m curious how much of the &quot;compile twice&quot; situation for static and dynamic libraries could actually be shared.  Even if it&#39;s not likely to be implemented in the next year or two, IMO it would make a big difference if it were feasible to generate both static and dynamic libraries at the same time and share some large percent of the compile time.<div>
<br></div><div>It seems to me that making GHCi always dynamic but GHC static by default, with the default being for Cabal to build both static and dynamic libraries, is the right answer.  After all, static binaries are the right answer for binaries on everything but a few resource-limited mobile platforms anyway.  Doubling the compile times is harsh, but I think it&#39;s particularly justifiable if it were something that eventually, if it annoys someone enough, they will pound out the code to fix it.</div>
<div><br></div><div>Or... how hard would it be to make GHCi fall back to interpreting modules from any packages that don&#39;t have dynamic libraries?</div>