OK, I see this was intentional: "The type variables in the head of a class or instance declaration scope over the methods defined in the where part." But both provisions cause Haskell 98 modules to be rejected, even without -fglasgow-exts.