Iface loading type reflection module bindings

Josh Meredith joshmeredith2008 at gmail.com
Sun May 17 16:54:39 UTC 2020


Hi,

In attempting to implement an extensible interface field for Core bindings
based
on my previous interfaces patch, I've run into problems with deserialising
the
special type reflection `$trModule` bindings generated by
`GHC.Tc.Instance.Typeable.mkTypeableBinds`.
These bindings are then stored in the `ModGuts.mg_binds` along with the
real exported
top-level bindings of the module.

Specifically, attempting to load the iface right-hand side expressions with
`tcIfaceExpr` results in the error "Iface id out of scope" from
`GHC.Iface.Env.tcIfaceLclId`.
My understanding is that this may be because the binding is attempting to
look
itself up within the interface loading environment, without being bound yet
-
though it's unclear to me whether this is the correct behaviour for these
special
type reflection bindings, or if there's some special treatment that should
be
instead applied to load these.

Any advice on how I should proceed would be greatly appreciated.

Cheers,
Josh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20200518/de377613/attachment.html>


More information about the ghc-devs mailing list