{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreiangltbyvlgsotqbdef2oh7fkm6fdhsbjbkmv6ec4ly3vb47kzjdy",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mpomoqtxof52"
  },
  "path": "/t/making-ghc-upgrades-easy/14279#post_9",
  "publishedAt": "2026-07-02T16:53:42.000Z",
  "site": "https://discourse.haskell.org",
  "tags": [
    "Cabal reference"
  ],
  "textContent": "The Cabal reference already gives an example:\n\n\n    if impl(ghc >= 7.5)\n      other-extensions: PolyKinds\n\n\nNow 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\n\n\n    if impl(ghc >= 7.5) && impl(ghc < 10.2)\n      other-extensions: PolyKinds\n\n\nUnfortunately 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.",
  "title": "Making GHC upgrades easy"
}