{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreie6j75xsgh7gfr4rk32ufpk4pvikdaavs7m3j3d7gvmkrjpxdmyai",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mouljgqamsd2"
  },
  "path": "/t/rfc-http-types-breakage-additions-rework/14286?page=3#post_48",
  "publishedAt": "2026-06-22T08:18:27.000Z",
  "site": "https://discourse.haskell.org",
  "tags": [
    "feature: Private Dependencies by alt-romes · Pull Request #9743 · haskell/cabal · GitHub"
  ],
  "textContent": "chrisdone:\n\n> I think the short answer is, “because the most popular compiler, GHC, only wants you to expose one version of a package at a time when doing a compile”, which makes it really hard to smoothly transition from one version to another, due to the mutual exclusion. I’m fairly confident that it’s this small tooling problem at the foundation of the stack that has caused huge ripple effects in the ecosystem that rests above it.\n\nThis is no longer the case in GHC, GHC is capable of handling multiple versions of the same package.\n\nThere is a POC for cabal private dependencies feature: Private Dependencies by alt-romes · Pull Request #9743 · haskell/cabal · GitHub which is, I think, conceptually what you would want.\nThe limitation is that you cannot expose symbols of a private dependency, which may or may not be an issue in this particular instance.",
  "title": "[RFC] \"http-types\" breakage / additions / rework"
}