Core Lint: more details on "Occurrence is GlobalId, but binding is LocalId"
I had a broken core pass (whilst working on #17478) which caused a top-level definition main
to have the same unique as the builtin(?) runMainIO
. This gave the confusing error that
Occurrence is GlobalId, but binding is LocalId
runMainIO :: forall a. IO a -> IO a
This has now been changed to say (slightly trimmed)
Occurrence is GlobalId, but binding is LocalId
occurrence:
runMainIO :: forall a. IO a -> IO a
[GblId]
binder :
main :: IO ()
[LclIdX,
which makes the problem much clearer, since the names runMainIO
and main
obviously differ.