Finding out if a binding is externally visible

Sebastian Graf sgraf1337 at gmail.com
Sun May 28 15:52:28 UTC 2017


Hi all,

I'm tinkering around with GHCs Call Arity Analysis and Demand Analysis as
part of my Master's thesis. The usage analysis part is what I'm interested
in in particular.

After quite some time spent debugging absent errors, I noticed that certain
top-level bindings aren't exported, but still visible in other modules
through generated RULE pragmas (e.g. through class instance
specialization). These bindings were considered absent in my combined
analysis, explaining the very sporadic absent errors I was getting.

Is there some function that tells me if an identifier is 'externally
visible' in that sense? I think
https://downloads.haskell.org/~ghc/8.0.1/docs/html/libraries/ghc-8.0.1/GHC.html#v:isExternalName
is what I'm after, but I want to be sure. Does that function already work
when the Ids are still local?

Greetings,
Sebastian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20170528/f9c90f56/attachment.html>


More information about the ghc-devs mailing list