Make the External Package Table contain ModDetails not ModIface
Currently the External Package Table contains ModIfaces. But that makes it hard to answer the question "which instances were introduced by module Foo" in the GHC API. See Kenny Lu's problem http://www.haskell.org/pipermail/glasgow-haskell-users/2007-August/013027.html
Furthermore the ModIfaces in the EPS are cut-down ones, with decls etc trimmed off becuase they are in the type envts.
Since loadInterface does typechecking etc, it'd make sense for it to return a ModDetails instead and for that ModDetails to be stored in the EPS. This would also tidy up the oddity that a ModIface contains redundant fields for fixity envt and deprecaction envt (they would move to ModDetails).
Then it'd also make sense for the GHC API to use ModDetails instead of ModInfo.
This change isn't truly hard, but it needs care.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.6.1 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown |
| Architecture | Unknown |