ghc-typelits-knownnat 0.7.7 → 0.7.8
raw patch · 4 files changed
+38/−8 lines, 4 filesdep ~ghcdep ~ghc-primdep ~template-haskellPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ghc, ghc-prim, template-haskell, transformers
API changes (from Hackage documentation)
Files
- CHANGELOG.md +3/−0
- ghc-typelits-knownnat.cabal +8/−8
- src-ghc-9.4/GHC/TypeLits/KnownNat/Solver.hs +24/−0
- tests/Main.hs +3/−0
CHANGELOG.md view
@@ -1,5 +1,8 @@ # Changelog for the [`ghc-typelits-knownnat`](http://hackage.haskell.org/package/ghc-typelits-knownnat) package +## 0.7.8 *February 20th 2023*+* Support for GHC-9.6.0.20230210+ ## 0.7.7 *October 10th 2022* * Add support for GHC 9.4
ghc-typelits-knownnat.cabal view
@@ -1,5 +1,5 @@ name: ghc-typelits-knownnat-version: 0.7.7+version: 0.7.8 synopsis: Derive KnownNat constraints from other KnownNat constraints description: A type checker plugin for GHC that can derive \"complex\" @KnownNat@@@ -54,8 +54,8 @@ CHANGELOG.md cabal-version: >=1.10 tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5,- GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.4,- GHC == 9.4.2+ GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.6,+ GHC == 9.4.4, GHC == 9.6.1 source-repository head type: git@@ -87,12 +87,12 @@ UndecidableInstances ViewPatterns build-depends: base >= 4.9 && <5,- ghc >= 8.0.1 && <9.6,- ghc-prim >= 0.4.0.0 && <0.10,+ ghc >= 8.0.1 && <9.8,+ ghc-prim >= 0.4.0.0 && <0.11, ghc-tcplugins-extra >= 0.3.1, ghc-typelits-natnormalise >= 0.7.1 && <0.8,- transformers >= 0.5.2.0 && <0.6,- template-haskell >= 2.11.0.0 && <2.20+ transformers >= 0.5.2.0 && <0.7,+ template-haskell >= 2.11.0.0 && <2.21 hs-source-dirs: src default-language: Haskell2010 if flag(deverror)@@ -101,7 +101,7 @@ ghc-options: -Wall if impl(ghc >= 8.0) && impl(ghc < 9.4) hs-source-dirs: src-pre-ghc-9.4- if impl(ghc >= 9.4) && impl(ghc < 9.6)+ if impl(ghc >= 9.4) && impl(ghc < 9.8) hs-source-dirs: src-ghc-9.4 if impl(ghc < 8.2) build-depends: integer-gmp >= 0.5.1.0
src-ghc-9.4/GHC/TypeLits/KnownNat/Solver.hs view
@@ -120,10 +120,19 @@ (EqRel (NomEq), Pred (ClassPred,EqPred), classifyPredType) import GHC.Core.TyCo.Rep (Type (..), TyLit (..), UnivCoProvenance (PluginProv)) import GHC.Core.TyCon (tyConName)+#if MIN_VERSION_ghc(9,6,0) import GHC.Core.Type+ (PredType, dropForAlls, funResultTy, mkNumLitTy, mkStrLitTy, mkTyConApp,+ piResultTys, splitFunTys, splitTyConApp_maybe, tyConAppTyCon_maybe, typeKind,+ irrelevantMult)+import GHC.Core.TyCo.Compare+ (eqType)+#else+import GHC.Core.Type (PredType, dropForAlls, eqType, funResultTy, mkNumLitTy, mkStrLitTy, mkTyConApp, piResultTys, splitFunTys, splitTyConApp_maybe, tyConAppTyCon_maybe, typeKind, irrelevantMult)+#endif import GHC.Data.FastString (fsLit) import GHC.Driver.Plugins (Plugin (..), defaultPlugin, purePlugin) import GHC.Tc.Instance.Family (tcInstNewTyCon_maybe)@@ -131,14 +140,29 @@ import GHC.Tc.Types (TcPlugin(..), TcPluginSolveResult (..), getPlatform) import GHC.Tc.Types.Constraint (Ct, ctEvExpr, ctEvidence, ctEvPred, ctLoc, mkNonCanonical)+#if MIN_VERSION_ghc(9,6,0) import GHC.Tc.Types.Evidence+ (EvTerm (..), EvExpr, EvBindsVar, evDFunApp, mkEvCast)+import GHC.Plugins+ (Coercion, mkSymCo, mkTransCo)+#else+import GHC.Tc.Types.Evidence (EvTerm (..), EvExpr, EvBindsVar, evDFunApp, mkEvCast, mkTcSymCo, mkTcTransCo)+#endif import GHC.Types.Id (idType) import GHC.Types.Name (nameModule_maybe, nameOccName) import GHC.Types.Name.Occurrence (mkTcOcc, occNameString) import GHC.Types.Unique.FM (emptyUFM) import GHC.Types.Var (DFunId) import GHC.Unit.Module (mkModuleName, moduleName, moduleNameString)++#if MIN_VERSION_ghc(9,6,0)+mkTcSymCo :: Coercion -> Coercion+mkTcSymCo = mkSymCo++mkTcTransCo :: Coercion -> Coercion -> Coercion+mkTcTransCo = mkTransCo+#endif -- | Classes and instances from "GHC.TypeLits.KnownNat" data KnownNatDefs
tests/Main.hs view
@@ -16,6 +16,9 @@ import Data.Type.Equality ((:~:)(..)) #if __GLASGOW_HASKELL__ >= 802 import GHC.TypeNats+#if __GLASGOW_HASKELL__ >= 906+ hiding (type SNat)+#endif import Numeric.Natural #else import GHC.TypeLits