Hi all,<br><br>We&#39;ve been using to GHC-as-a-library to implement some parts of our project.<br>Our goal is to use ghc to extract necessary type information from Haskell modules.<br><br>Everything works fine until we attempt to collect the declared type class instances from a packaged haskell module, like List, Monad, etc.
<br>The program terminates with an error as&nbsp; follows, <br><br><br>getModuleInfo: instances for package module unimplemented<br><br><br><br><br>We manually trace into the source file /ghc/compiler/main/GHC.hs<br>and find the following snipet of code:
<br><br><br>getPackageModuleInfo :: HscEnv -&gt; Module -&gt; IO (Maybe ModuleInfo)<br>getPackageModuleInfo hsc_env mdl = do<br>#ifdef GHCI<br>&nbsp; (_msgs, mb_avails) &lt;- getModuleExports hsc_env mdl<br>&nbsp; case mb_avails of
<br>&nbsp;&nbsp;&nbsp; Nothing -&gt; return Nothing<br>&nbsp;&nbsp;&nbsp; Just avails -&gt; do<br>&nbsp;&nbsp;&nbsp; eps &lt;- readIORef (hsc_EPS hsc_env)<br>&nbsp;&nbsp;&nbsp; let <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; names&nbsp; = availsToNameSet avails<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pte&nbsp;&nbsp;&nbsp; = eps_PTE eps<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; tys&nbsp;&nbsp;&nbsp; = [ ty | name &lt;- concatMap availNames avails,
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Just ty &lt;- [lookupTypeEnv pte name] ]<br>&nbsp;&nbsp;&nbsp; --<br>&nbsp;&nbsp;&nbsp; return (Just (ModuleInfo {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; minf_type_env&nbsp; = mkTypeEnv tys,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; minf_exports&nbsp;&nbsp; = names,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; minf_rdr_env&nbsp;&nbsp; = Just $! nameSetToGlobalRdrEnv names (moduleName mdl),
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; minf_instances = error &quot;getModuleInfo: instances for package module unimplemented&quot;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minf_modBreaks = emptyModBreaks&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }))<br><br><br><br>It is clearly that the field mind_instances is not assigned to a proper value.
<br><br>Can someone kindly advise on how to implement the missing bit?<br>Or pointing out a workaround?<br><br>Thank you very much.<br><br>Best Regards,<br>Kenny Zhuo Ming Lu<br>