ghc-typelits-knownnat 0.5.1 → 0.6
raw patch · 3 files changed
+14/−3 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ GHC.TypeLits.KnownNat: instance (GHC.TypeNats.KnownNat x, GHC.TypeNats.KnownNat y, 1 GHC.TypeNats.<= y) => GHC.TypeLits.KnownNat.KnownNat2 "GHC.TypeNats.Div" x y
+ GHC.TypeLits.KnownNat: instance (GHC.TypeNats.KnownNat x, GHC.TypeNats.KnownNat y, 1 GHC.TypeNats.<= y) => GHC.TypeLits.KnownNat.KnownNat2 "GHC.TypeNats.Mod" x y
Files
- CHANGELOG.md +2/−2
- ghc-typelits-knownnat.cabal +1/−1
- src/GHC/TypeLits/KnownNat.hs +11/−0
CHANGELOG.md view
@@ -1,7 +1,7 @@ # Changelog for the [`ghc-typelits-knownnat`](http://hackage.haskell.org/package/ghc-typelits-knownnat) package -## 0.5.1 *July 10th 2018*-* Add support for GHC 8.6.1-alpha1+## 0.6 *September 14th 2018*+* Move `KnownNat2` instances for `Div` and `Mod` from `ghc-typelits-extra` to `ghc-typelits-knownnat` ## 0.5 *May 9th 2018* * Fix Inferred constraint is too strong [#19](https://github.com/clash-lang/ghc-typelits-knownnat/issues/19)
ghc-typelits-knownnat.cabal view
@@ -1,5 +1,5 @@ name: ghc-typelits-knownnat-version: 0.5.1+version: 0.6 synopsis: Derive KnownNat constraints from other KnownNat constraints description: A type checker plugin for GHC that can derive \"complex\" @KnownNat@
src/GHC/TypeLits/KnownNat.hs view
@@ -119,6 +119,9 @@ #if MIN_VERSION_ghc(8,2,0) import GHC.TypeNats (KnownNat, Nat, type (+), type (*), type (^), type (-), natVal, type (<=))+#if MIN_VERSION_base(4,11,0)+import GHC.TypeNats (Div, Mod)+#endif import GHC.TypeLits (Symbol) import Numeric.Natural (Natural) #else@@ -184,3 +187,11 @@ instance (KnownNat a, KnownNat b, b <= a) => KnownNat2 $(nameToSymbol ''(-)) a b where natSing2 = SNatKn (natVal (Proxy @a) - natVal (Proxy @b)) {-# INLINE natSing2 #-}++#if MIN_VERSION_base(4,11,0)+instance (KnownNat x, KnownNat y, 1 <= y) => KnownNat2 $(nameToSymbol ''Div) x y where+ natSing2 = SNatKn (quot (natVal (Proxy @x)) (natVal (Proxy @y)))++instance (KnownNat x, KnownNat y, 1 <= y) => KnownNat2 $(nameToSymbol ''Mod) x y where+ natSing2 = SNatKn (rem (natVal (Proxy @x)) (natVal (Proxy @y)))+#endif