binary
binary copied to clipboard
binary doesn't install with ghc 8.10.3 and containers 0.6.4.1
$ ghc --version The Glorious Glasgow Haskell Compilation System, version 8.10.3 bash-3.2$ cabal install binary --lib Resolving dependencies... cabal: Could not resolve dependencies: [__0] trying: binary-0.8.8.0/installed-0.8.8.0 (user goal) [__1] next goal: containers (user goal) [__1] rejecting: containers-0.6.4.1 (conflict: binary => containers==0.6.2.1/installed-0.6.2.1) [__1] rejecting: containers-0.6.3.1, containers-0.6.2.1/installed-0.6.2.1, containers-0.6.2.1, containers-0.6.1.1, containers-0.6.0.1, containers-0.5.11.0, containers-0.5.10.2, containers-0.5.10.1, containers-0.5.9.2, containers-0.5.8.2, containers-0.5.7.1, containers-0.5.7.0, containers-0.5.6.3, containers-0.5.6.2, containers-0.5.6.1, containers-0.5.6.0, containers-0.5.5.1, containers-0.5.5.0, containers-0.5.4.0, containers-0.5.3.1, containers-0.5.3.0, containers-0.5.2.1, containers-0.5.2.0, containers-0.5.1.0, containers-0.5.0.0, containers-0.4.2.1, containers-0.4.2.0, containers-0.4.1.0, containers-0.4.0.0, containers-0.3.0.0, containers-0.2.0.1, containers-0.2.0.0, containers-0.1.0.1, containers-0.1.0.0, containers-0.5.9.1, containers-0.5.8.1 (constraint from user target requires ==0.6.4.1) [__1] fail (backjumping, conflict set: binary, containers) After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: binary, containers, ghc
Same problem with GHC ver. 8.10.4, but conflicts with base:
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: klavia-server-0.1.0.0 (user goal)
[__1] next goal: binary (dependency of klavia-server)
[__1] rejecting: binary-0.8.8.0/installed-0.8.8.0 (conflict: klavia-server => binary^>=0.10.0.0)
[__1] skipping: binary-0.8.8.0, binary-0.8.7.0, binary-0.8.6.0, binary-0.8.5.1, binary-0.8.5.0, binary-0.8.4.1, binary-0.8.4.0, binary-0.8.3.0, binary-0.8.2.1, binary-0.8.2.0, binary-0.8.1.0, binary-0.8.0.1, binary-0.8.0.0, binary-0.7.6.1, binary-0.7.6.0, binary-0.7.5.0, binary-0.7.4.0, binary-0.7.3.0, binary-0.7.2.3, binary-0.7.2.2, binary-0.7.2.1, binary-0.7.2.0, binary-0.7.1.0, binary-0.7.0.1, binary-0.7.0.0, binary-0.6.4.0, binary-0.6.3.0, binary-0.6.2.0, binary-0.6.1.0, binary-0.6.0.0, binary-0.5.1.1, binary-0.5.1.0, binary-0.5.0.2, binary-0.5.0.1, binary-0.5, binary-0.4.5, binary-0.4.4, binary-0.4.3.1, binary-0.4.3, binary-0.4.2, binary-0.4.1, binary-0.4, binary-0.3, binary-0.2 (has the same characteristics that caused the previous version to fail: excluded by constraint '^>=0.10.0.0' from 'klavia-server')
[__1] trying: binary-0.10.0.0
[__2] next goal: base (dependency of klavia-server)
[__2] rejecting: base-4.14.1.0/installed-4.14.1.0 (conflict: binary => base>=4.5.0.0 && <4.13)
[__2] skipping: base-4.15.0.0, base-4.14.1.0, base-4.14.0.0, base-4.13.0.0 (has the same characteristics that caused the previous version to fail: excluded by constraint '>=4.5.0.0 && <4.13' from 'binary')
[__2] rejecting: base-4.12.0.0, base-4.11.1.0, base-4.11.0.0, base-4.10.1.0, base-4.10.0.0, base-4.9.1.0, base-4.9.0.0, base-4.8.2.0, base-4.8.1.0, base-4.8.0.0, base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1, base-4.6.0.0, base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0, base-4.3.1.0, base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0, base-4.1.0.0, base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (constraint from non-upgradeable package requires installed instance)
[__2] fail (backjumping, conflict set: base, binary, klavia-server)
After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: binary, klavia-server, base
This seems to have to do with the dependency on base; support for versions 4.13 and later has apparently been removed from the latest version of binary. Downgrading binary to version 0.8.8, however, seems to fix the problem.
It appears that binary-0.10.0.0 was revised to exclude base-4.13 and earlier. The reason for this appears to be compatibility with the MonadFail proposal: the Monad instance for Get tries to define the fail method, which no longer exists. This is fixed in master.