[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