Note [InstEnv determinism]
We turn InstEnvs into a list in some places that don't directly affect the ABI. That happens when we create output for `:info`. Unfortunately that nondeterminism is nonlocal and it's hard to tell what it affects without following a chain of functions. It's also easy to accidentally make that nondeterminism affect the ABI. Furthermore the envs should be relatively small, so it should be free to use deterministic maps here. Testing with nofib and validate detected no difference between UniqFM and UniqDFM. See also Note [Deterministic UniqFM]
References 1
- Deterministic UniqFM GHC.Types.Unique.DFM
Referenced by 3
- GHC.Core.InstEnv call site ×2
- GHC.Core.RoughMap call site