GHC 8.4.1 is out, so now GHC's support window only extends
back to GHC 8.2. This means we can delete gobs of code that were
only used for GHC 8.0 support. Hooray!
I think I just found two. Look in Data.Array.ST. runSTArray and runSTUArray have #if __GLASGOW_HASKELL__ >= 711. Did you forget to search for development version numbers?
Nope—I just didn't look in submodules. There are probably tons of those in places like Haddock, for instance, but I simply don't have the energy to exhaustively comb through all of them.
This was my doing, and it was better than what came before, but it's the wrong approach! What we really should do is much simpler:
equalKeysUFM (UFM m1) (UFM m2) = liftEq (\_ _ -> True) m1 m2
Do you want to do that now, or should I put together a separate differential?
When I was updating array, I realized that you missed a spot. We no longer need to derive Typeable explicitly, as that has been automatic for some time. That also means some modules can drop the Data.Typeable import and a few might be able to drop DeriveDataTypeable.
Hm. I could have sworn that I expunged all uses of Data.Typeable in 95dfdceb8b4dcc54a366949577d9ee389bad5bc3, but it does appear that some still remain (or perhaps snuck in since that commit).