ucsd-progsys / liquidhaskell

Liquid Types For Haskell

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Liquid haskell packages at Hackage out of sync?

amigalemming opened this issue · comments

I try to build the tutorial package of Andres Löh at MuniHac 2020 (https://github.com/kosmikus/lh-munihac2020) and updated dependencies to:

  build-depends:
    liquidhaskell >= 0.9.8 && < 0.10,
    liquid-base >= 4.15 && < 4.16,
    liquid-containers >= 0.6.4 && < 0.7

When I build with GHC-9.0.2 I get:

Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: lh-munihac2020-0.1 (user goal)
[__1] trying: liquidhaskell-0.9.8.1 (dependency of lh-munihac2020)
[__2] trying: liquidhaskell-boot-0.9.8.1 (dependency of liquidhaskell)
[__3] trying: template-haskell-2.17.0.0/installed-2.17.0.0 (dependency of
liquidhaskell-boot)
[__4] next goal: ghc-boot (dependency of liquidhaskell-boot)
[__4] rejecting: ghc-boot-9.0.2/installed-9.0.2 (conflict: liquidhaskell =>
bytestring==0.12.0.2, ghc-boot => bytestring==0.10.12.1/installed-0.10.12.1)
[__4] rejecting: ghc-boot-9.8.1 (conflict: template-haskell =>
ghc-boot-th==9.0.2/installed-9.0.2, ghc-boot => ghc-boot-th==9.8.1)
[__4] rejecting: ghc-boot-9.6.3 (conflict: template-haskell =>
...

It seems that the released version liquidhaskell is too new for liquid-base.

Cabal can create a build plan for liquidhaskell-0.9.0.*.

Hello @amigalemming, looks like you are trying to build liquidhaskell-0.9.8.1 with GHC 9.0.2, which is not supported.

Please, let us know if the installation advice in the website doesn't work for you.

Also, the tutorial needs an update. liquid-base and liquid-containers aren't needed (with GHC >= 9.2 IIRC), and using -fplugin in ghc-options: could cause installation of the cabal package to fail with GHC >= 9.6.

I see. Would it be appropriate to mark liquid-base and liquid-containers as deprecated at Hackage?

That looks like a good idea. I just deprecated liquid-containers, liquid-base, and liquid-bytestring. Also updated the upper bounds to prevent builds with a liquidhaskell >= 0.9.2. Also set the description to indicate that these are superseded by liquidhaskell >= 9.2.