Reduce non-determinism in ABI hashes with RULES and instance decls
Before this change the RULES would be attached to one for the names from
the module that appear on the left hand side. The choice depended on the
uniq that was generated, which are known to be non-deterministic (a
separate, bigger problem). Now we use OccNames which should be stable.
Analogously for instance declarations, but they are attached to one of
the types involved.
it made Data.Text.Internal.Fusion.Common interface stable, previously
stream fusion rule would be attached either to streamList or
unstreamList depending on if the module was compiled after `cabal
clean` or after find | grep '\.o$' | xargs rm.
Reviewers: simonpj, austin, bgamari, simonmar
Subscribers: puffnfresh, thomie
Differential Revision: https://phabricator.haskell.org/D1073
GHC Trac Issues: Trac #4012