GHC breaks determinism across one-shot and --make modes
Currently it seems that GHC can produce different ABIs (and therefore interface files) in one-shot and --make
modes. I don't have access to a reproducer at the moment, but in particular the rough shape of the problem sounds to me like the culprit is one of:
- float-out/set-levels (although this seems unlikely since IIRC these are always given
lvl
names) - simplifier, maybe?
- Core CSE
In particular, the problem is that an MFE which appears in two different bindings seems to be floated with one name or the other.