While I'm at it, this Issue would be a good time to
de-duplicate the code in Plugin.hs for Deriveds and Wanteds as much as possible
determine when to generate Derived vs Wanted for "derived equalities" arising when simplifying Wanteds (I thought it should be Wanted, but that caused tests to fail; maybe splitting will fix that)
As of 13c6608c0082fb98c1c162cb1568034fc74ba2b3, the plugin:
G
sD
s with fixedG
cacheW
s andWD
s with fixedG
cacheThis Issue is to refine that to:
G
sWD
s andD
s with fixedG
cache; split any changedWD
s into an unchangedW
and changedD
W
s with fixedG
cacheSee https://gitlab.haskell.org/ghc/ghc/wikis/plugins/type-checker/notes for more context.