[Haskell-cafe] Strange kind error when using Lens.traverseOf

Tom Ellis tom-lists-haskell-cafe-2023 at jaguarpaw.co.uk
Tue Jul 23 16:24:08 UTC 2024


On Tue, Jul 23, 2024 at 04:51:34PM +0200, Henning Thielemann wrote:
> I have this simplified module:
[...]
> src/Ganeti/LensPlain.hs:8:32: error: [GHC-25897]
>     • Couldn't match kind ‘k2’ with ‘*’
>
> GHC-9.0 accepts the code. Also GHC-9.2 accepts it when the module is
> compiled as part of a larger Cabal project!
[...]
> I compiled with:
> 
> $ ghc-9.6.6 -package lens -c src/Ganeti/LensPlain.hs

A major difference between 9.0 and 9.2 is that GHC2021 is enabled by
default in 9.2.  GHC2021 enables PolyKinds, and presumably what used
to be assumed to be * (Type) is now generalized to k2.

The simplest solution is probably just to put

    {-# LANGUAGE NoPolyKinds #-}

at the top of LensPlain.hs.  The reason it works as part of a Cabal
project is that Cabal does not turn on GHC2021 by default.

Tom


More information about the Haskell-Cafe mailing list