| at this point in time Stackage works
| hard to ensure that in any given package set, there is *exactly one*
| version of any package. That's why Stackage aligns versions of core
| packages to whatever ships with the GHC version the package set is
| based on.
Ah. It follows that if Stackage wants to find a set of packages compatible with GHC-X, then it must pick precisely the version of bytestring that GHC-X depends on. (I'm assuming here that GHC-X fixes a particular version, even though bytestring is reinstallable? Certainly, a /distribution/ of GHC-X will do so.)
If meanwhile the bytestring author has decided to use a newer version of .cabal file syntax, then GHC-X is stuck with that. Or would have to go back to an earlier version of bytestring, for which there might be material disadvantages.
That would make it hard to GHC to guarantee to downstream tools that it doesn't depend on any packages whose .cabal files use new syntax; which is where this thread started.
Hmm. I wonder if I have understood this correctly. Perhaps Michael would like to comment?