Core lint failure when building hgeometry-combinatorial with GHC-9.8/HEAD
On this head.hackage job, hgeometry-combinatorial is failing with a core lint error:
*** Core Lint errors : in result of Simplifier ***
src/Data/Permutation.hs:118:31: warning:
Role incompatibility: expected nominal, got representational
in (MVector
(Sym (D:R:PrimStateST0[0] <s_a1lDZ>_N)
; (PrimState (ST (Sym (D:R:PrimStateST0[0] <s_a1lDZ>_N)))_N)_N)
<Int>_R)_R
In the RHS of genIndexes :: forall a.
Enum a =>
Int -> [[a]] -> Vector (Int, Int)
In the body of lambda with binder a_a1lCv :: *
In the body of lambda with binder $dEnum_a1lCw :: Enum a_a1lCv
In the body of lambda with binder n_a1lxt :: Int
In the body of lambda with binder os_a1lxu :: [[a_a1lCv]]
In the body of lambda with binder s_a1lDZ :: *
In the body of lambda with binder s1_a8wx :: State# s_a1lDZ
In a case alternative: (True)
In the body of lambda with binder s1_aiPN :: State#
(PrimState (ST s_a1lDZ))
In the body of letrec with binders size_aiQ0 :: Int
In a case alternative: ((#,#) ipv_a1m88 :: State#
(PrimState (ST (PrimState (ST s_a1lDZ)))),
ipv1_a1m89 :: MVector
(PrimState (ST (PrimState (ST s_a1lDZ)))) Int)
In the body of letrec with binders size_X2 :: Int
In a case alternative: ((#,#) ipv2_a1m8c :: State#
(PrimState (ST (PrimState (ST s_a1lDZ)))),
ipv3_a1m8d :: MVector
(PrimState (ST (PrimState (ST s_a1lDZ)))) Int)
In a case alternative: (I# unbx_a8y6 :: Int#)
In a case alternative: (MVector ipv_s1m9R :: Int#,
ipv_s1m9S :: Int#,
ipv_s1m9T :: MutableByteArray# s_a1lDZ)
In a case alternative: (MVector ipv_s1m9V :: Int#,
ipv_s1m9W :: Int#,
ipv_s1m9X :: MutableByteArray# s_a1lDZ)
Substitution: <InScope = {a_a1lCv s_a1lDZ}
IdSubst = []
TvSubst = [a1lCv :-> a_a1lCv, a1lDZ :-> s_a1lDZ]
CvSubst = []>
I don't have capacity to reduce this to a standalone reproducer right now, but I thought I'd make a ticket for it.
This is building with GHC-9.8.