Making GHC upgrades easy
Haskell Community [Unofficial]
July 2, 2026
The Cabal reference already gives an example:
if impl(ghc >= 7.5)
other-extensions: PolyKinds
Now suppose GHC 10.2 comes up with a new and improved PolyKinds which alas has a corner case that breaks our package. Then we might want to say
if impl(ghc >= 7.5) && impl(ghc < 10.2)
other-extensions: PolyKinds
Unfortunately while this is informative it also does next to nothing, we still need to come up with a workaround for PolyKinds in every affected module and maybe guard it with CPP. But my only point was that it’s semantically correct to equate the “extension version” with extension name + compiler version range, and the latter would be preferable because it doesn’t introduce any new concept.
Discussion in the ATmosphere