<div dir="ltr">Hi all,<div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>Is there some function that tells me if an identifier is 'externally visible' in that sense? I thinkĀ <a href="https://downloads.haskell.org/~ghc/8.0.1/docs/html/libraries/ghc-8.0.1/GHC.html#v:isExternalName">https://downloads.haskell.org/~ghc/8.0.1/docs/html/libraries/ghc-8.0.1/GHC.html#v:isExternalName</a> is what I'm after, but I want to be sure. Does that function already work when the Ids are still local?</div><div><br></div><div>Greetings,</div><div>Sebastian</div></div>