I don’t really understand why this fails
cabal-3.8.1.0 repl -w ghc-9.8 --build-depends pretty-simple==4.0.0.0
whereas these work successfully
cabal-3.8.1.0 repl -w ghc-9.8 --build-depends pretty-simple==4.0.0.0 --allow-newer
cabal-3.10.1.0 repl -w ghc-9.8 --build-depends pretty-simple==4.0.0.0
The operative part of the error message is below and it seems to be something to do with pretty-simple
's Setup.hs
. Does anyone understand why it would require cabal-3.10
when it builds under cabal-3.8
with --allow-newer
? Does that mean that pretty-simple
has a too-strict bound somewhere, or is there something more fundamental going on?
Resolving dependencies...
Error: cabal-3.8.1.0: Could not resolve dependencies:
[__0] trying: fake-package-0 (user goal)
[__1] next goal: pretty-simple (dependency of fake-package)
[__1] rejecting: pretty-simple-4.1.2.0 (conflict: fake-package =>
pretty-simple==4.0.0.0)
[__1] skipping: pretty-simple-4.1.1.0, pretty-simple-4.1.0.0 (has the same
characteristics that caused the previous version to fail: excluded by
constraint '==4.0.0.0' from 'fake-package')
[__1] trying: pretty-simple-4.0.0.0
[__2] next goal: pretty-simple:setup.Cabal (dependency of pretty-simple)
[__2] rejecting: pretty-simple:setup.Cabal-3.10.2.0/installed-544a,
pretty-simple:setup.Cabal-3.10.2.1, pretty-simple:setup.Cabal-3.10.2.0,
pretty-simple:setup.Cabal-3.10.1.0 (constraint from maximum version of Cabal
used by Setup.hs requires <3.10)
[__2] trying: pretty-simple:setup.Cabal-3.8.1.0
[__3] next goal: pretty-simple:setup.text (dependency of
pretty-simple:setup.Cabal)
[__3] rejecting: pretty-simple:setup.text-2.1/installed-0c74 (conflict:
pretty-simple:setup.Cabal => pretty-simple:setup.text>=1.2.3.0 && <1.3 ||
>=2.0 && <2.1)
[__3] skipping: pretty-simple:setup.text-2.1 (has the same characteristics
that caused the previous version to fail: excluded by constraint '>=1.2.3.0 &&
<1.3 || >=2.0 && <2.1' from 'pretty-simple:setup.Cabal')
[__3] trying: pretty-simple:setup.text-2.0.2
[__4] next goal: pretty-simple:setup.base (dependency of pretty-simple)
[__4] rejecting: pretty-simple:setup.base-4.19.0.0/installed-e327 (conflict:
pretty-simple:setup.text => pretty-simple:setup.ghc-prim>=0.2 && <0.11,
pretty-simple:setup.base =>
...