Add -XImpredicativeTypes, and tighten up type-validity checking (cf Trac 2019)