Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information