-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GHC 9.6 #2
GHC 9.6 #2
Conversation
9.4 and 9.6 are broken in the same way, so might as well.
Thanks @Ericson2314 ! |
Builds and tests fine with GHC 9.2. GHC 9.4 complains with
|
The failing data type is data Spleeb a b where
P :: a Double -> Qux b -> Spleeb a b The difference between versions seems to be that InstanceD Nothing [AppT (ConT Data.GADT.Internal.GEq) (VarT a_6989586621679027108),AppT (ConT Data.GADT.Internal.GEq) (VarT b_6989586621679027109)] (AppT (ConT Data.GADT.Internal.GEq) (SigT (AppT (AppT (ConT GHC.Generics.:*:) (VarT a_6989586621679027108)) (VarT b_6989586621679027109)) (AppT (AppT ArrowT (VarT k_6989586621679027107)) StarT))) []
InstanceD Nothing [AppT (ConT Data.GADT.Internal.GEq) (VarT f_6989586621679030688),AppT (ConT Data.GADT.Internal.GEq) (VarT g_6989586621679030689)] (AppT (ConT Data.GADT.Internal.GEq) (SigT (AppT (AppT (ConT GHC.Generics.:+:) (VarT f_6989586621679030688)) (VarT g_6989586621679030689)) (AppT (AppT ArrowT (VarT k_6989586621679030687)) StarT))) []
InstanceD Nothing [] (AppT (ConT Data.GADT.Internal.GEq) (SigT (AppT (ConT Data.Type.Equality.:~:) (VarT a_6989586621679030691)) (AppT (AppT ArrowT (VarT k_6989586621679030690)) StarT))) []
InstanceD Nothing [] (AppT (ConT Data.GADT.Internal.GEq) (SigT (AppT (ConT Data.Type.Equality.:~~:) (VarT a_6989586621679030694)) (AppT (AppT ArrowT (VarT k_6989586621679030693)) StarT))) []
InstanceD Nothing [AppT (ConT Data.GADT.Internal.GEq) (VarT a_6989586621679030696),AppT (ConT Data.GADT.Internal.GEq) (VarT b_6989586621679030697)] (AppT (ConT Data.GADT.Internal.GEq) (SigT (AppT (AppT (ConT Data.Functor.Product.Product) (VarT a_6989586621679030696)) (VarT b_6989586621679030697)) (AppT (AppT ArrowT (VarT k_6989586621679030695)) StarT))) []
InstanceD Nothing [AppT (ConT Data.GADT.Internal.GEq) (VarT a_6989586621679030876),AppT (ConT Data.GADT.Internal.GEq) (VarT b_6989586621679030877)] (AppT (ConT Data.GADT.Internal.GEq) (SigT (AppT (AppT (ConT Data.Functor.Sum.Sum) (VarT a_6989586621679030876)) (VarT b_6989586621679030877)) (AppT (AppT ArrowT (VarT k_6989586621679030875)) StarT))) [] So my guess is that GHC 9.4 got smarter, and the dependent-sum-template/src/Data/GADT/TH/Internal.hs Lines 37 to 38 in 9a83b0a
EDIT: looking at the returned instances, it seems like it only returns the instances that unify with |
Opened a GHC bug with a minimal reproducer https://gitlab.haskell.org/ghc/ghc/-/issues/23743 |
Given the ghc issue, it might be better to support 9.6 and skip 9.2 and 9.4 |
@Ericson2314 if you're ok with the direction of #6, please close this. |
No description provided.