Eliminate string-y Id lookups in Wasm backend
It appears that the Wasm backend has a rather atypical way of referring to base
declarations. For instance, GHC.HsToCore.Foreign.Wasm
has many mentions like:
unsafeDupablePerformIO_id <-
lookupGhcInternalVarId
"GHC.Internal.IO.Unsafe"
"unsafeDupablePerformIO"
This is very brittle and inconsistent with how similar references occur elsewhere in GHC. Specifically, this sort of reference should be realized by giving the declaration a known-key name (c.f. GHC.Builtin.Names
) and using dsLookupGlobalId
to lookup the identifier.