Hello community,

here is the log from the commit of package ghc-ghc-typelits-knownnat for 
openSUSE:Factory checked in at 2017-08-31 20:51:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-ghc-typelits-knownnat (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-ghc-typelits-knownnat.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-ghc-typelits-knownnat"

Thu Aug 31 20:51:01 2017 rev:3 rq:513251 version:0.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/ghc-ghc-typelits-knownnat/ghc-ghc-typelits-knownnat.changes
      2017-05-17 10:55:28.849317587 +0200
+++ 
/work/SRC/openSUSE:Factory/.ghc-ghc-typelits-knownnat.new/ghc-ghc-typelits-knownnat.changes
 2017-08-31 20:51:03.604956788 +0200
@@ -1,0 +2,5 @@
+Thu Jul 27 14:03:45 UTC 2017 - [email protected]
+
+- Update to version 0.3.
+
+-------------------------------------------------------------------

Old:
----
  ghc-typelits-knownnat-0.2.4.tar.gz

New:
----
  ghc-typelits-knownnat-0.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-ghc-typelits-knownnat.spec ++++++
--- /var/tmp/diff_new_pack.pSs4N2/_old  2017-08-31 20:51:04.600816997 +0200
+++ /var/tmp/diff_new_pack.pSs4N2/_new  2017-08-31 20:51:04.608815875 +0200
@@ -19,7 +19,7 @@
 %global pkg_name ghc-typelits-knownnat
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        0.2.4
+Version:        0.3
 Release:        0
 Summary:        Derive KnownNat constraints from other KnownNat constraints
 License:        BSD-2-Clause

++++++ ghc-typelits-knownnat-0.2.4.tar.gz -> ghc-typelits-knownnat-0.3.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ghc-typelits-knownnat-0.2.4/CHANGELOG.md 
new/ghc-typelits-knownnat-0.3/CHANGELOG.md
--- old/ghc-typelits-knownnat-0.2.4/CHANGELOG.md        2017-04-10 
17:31:37.000000000 +0200
+++ new/ghc-typelits-knownnat-0.3/CHANGELOG.md  2017-05-15 10:14:32.000000000 
+0200
@@ -1,5 +1,8 @@
 # Changelog for the 
[`ghc-typelits-knownnat`](http://hackage.haskell.org/package/ghc-typelits-knownnat)
 package
 
+## 0.3 *May 15th 2017*
+* GHC 8.2.1 support: Underlying representation for `KnownNat` in GHC 8.2 is 
`Natural`, meaning users of this plugin will need to update their code to use 
`Natural` for GHC 8.2 as well.
+
 ## 0.2.4 *April 10th 2017*
 * New features:
   * Derive constraints for unary functions via a `KnownNat1` instance; thanks 
to @nshepperd [#11](https://github.com/clash-lang/ghc-typelits-knownnat/pull/11)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ghc-typelits-knownnat-0.2.4/ghc-typelits-knownnat.cabal 
new/ghc-typelits-knownnat-0.3/ghc-typelits-knownnat.cabal
--- old/ghc-typelits-knownnat-0.2.4/ghc-typelits-knownnat.cabal 2017-04-10 
17:27:52.000000000 +0200
+++ new/ghc-typelits-knownnat-0.3/ghc-typelits-knownnat.cabal   2017-05-02 
10:09:20.000000000 +0200
@@ -1,5 +1,5 @@
 name:                ghc-typelits-knownnat
-version:             0.2.4
+version:             0.3
 synopsis:            Derive KnownNat constraints from other KnownNat 
constraints
 description:
   A type checker plugin for GHC that can derive \"complex\" @KnownNat@
@@ -81,8 +81,8 @@
                        TypeInType
                        UndecidableInstances
                        ViewPatterns
-  build-depends:       base                      >= 4.9      && <4.10,
-                       ghc                       >= 8.0.1    && <8.2,
+  build-depends:       base                      >= 4.9      && <5,
+                       ghc                       >= 8.0.1    && <8.4,
                        ghc-tcplugins-extra       >= 0.2,
                        ghc-typelits-natnormalise >= 0.5.2    && <0.6,
                        singletons                >= 2.2      && <3.0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ghc-typelits-knownnat-0.2.4/src/GHC/TypeLits/KnownNat.hs 
new/ghc-typelits-knownnat-0.3/src/GHC/TypeLits/KnownNat.hs
--- old/ghc-typelits-knownnat-0.2.4/src/GHC/TypeLits/KnownNat.hs        
2017-04-10 17:27:52.000000000 +0200
+++ new/ghc-typelits-knownnat-0.3/src/GHC/TypeLits/KnownNat.hs  2017-05-02 
10:03:24.000000000 +0200
@@ -85,6 +85,7 @@
 -}
 
 {-# LANGUAGE AllowAmbiguousTypes   #-}
+{-# LANGUAGE CPP                   #-}
 {-# LANGUAGE DataKinds             #-}
 {-# LANGUAGE FlexibleInstances     #-}
 {-# LANGUAGE KindSignatures        #-}
@@ -116,15 +117,29 @@
 
 import Data.Bits              (shiftL)
 import Data.Proxy             (Proxy (..))
+#if MIN_VERSION_ghc(8,2,0)
+import GHC.TypeNats
+  (KnownNat, Nat, type (+), type (*), type (^), type (-), type (<=), natVal)
+import GHC.TypeLits           (Symbol)
+#else
 import GHC.TypeLits           (KnownNat, Nat, Symbol, type (+), type (*),
                                type (^), type (-), type (<=), natVal)
+#endif
 import Data.Singletons        (type (~>), type (@@))
 import Data.Promotion.Prelude (type (:+$), type (:*$), type (:^$), type (:-$))
+#if MIN_VERSION_ghc(8,2,0)
+import Numeric.Natural        (Natural)
+#endif
 
 import GHC.TypeLits.KnownNat.TH
 
--- | Singleton natural number (represented by an integer)
-newtype SNatKn (n :: Nat) = SNatKn Integer
+-- | Singleton natural number
+newtype SNatKn (n :: Nat) =
+#if MIN_VERSION_ghc(8,2,0)
+  SNatKn Natural
+#else
+  SNatKn Integer
+#endif
 
 -- | Class for arithmetic functions with /one/ argument.
 --
@@ -171,7 +186,7 @@
   natSing2 = let x = natVal (Proxy @ a)
                  y = natVal (Proxy @ b)
                  z = case x of
-                       2 -> shiftL 1 (fromInteger y)
+                       2 -> shiftL 1 (fromIntegral y)
                        _ -> x ^ y
              in  SNatKn z
   {-# INLINE natSing2 #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ghc-typelits-knownnat-0.2.4/tests/Main.hs 
new/ghc-typelits-knownnat-0.3/tests/Main.hs
--- old/ghc-typelits-knownnat-0.2.4/tests/Main.hs       2017-04-10 
17:27:52.000000000 +0200
+++ new/ghc-typelits-knownnat-0.3/tests/Main.hs 2017-05-02 10:23:58.000000000 
+0200
@@ -1,4 +1,4 @@
-{-# LANGUAGE DataKinds, GADTs, KindSignatures, ScopedTypeVariables, 
TypeOperators,
+{-# LANGUAGE CPP, DataKinds, GADTs, KindSignatures, ScopedTypeVariables, 
TypeOperators,
              TypeApplications, TypeFamilies, TypeFamilyDependencies, 
FlexibleContexts #-}
 
 {-# OPTIONS_GHC -fplugin GHC.TypeLits.Normalise       #-}
@@ -8,7 +8,12 @@
 
 import Data.Proxy
 import Data.Type.Equality ((:~:)(..))
+#if __GLASGOW_HASKELL__ >= 802
+import GHC.TypeNats
+import Numeric.Natural
+#else
 import GHC.TypeLits
+#endif
 import Test.Tasty
 import Test.Tasty.HUnit
 import Test.Tasty.QuickCheck
@@ -16,14 +21,20 @@
 
 import TestFunctions
 
-addT :: Integer -> Integer -> Integer
+#if __GLASGOW_HASKELL__ >= 802
+type Number = Natural
+#else
+type Number = Integer
+#endif
+
+addT :: Number -> Number -> Number
 addT a b = withNat a $
            \(Proxy :: Proxy a) ->
              withNat b $
              \(Proxy :: Proxy b) ->
                natVal (Proxy :: Proxy (a + b))
 
-subT :: Integer -> Integer -> Integer
+subT :: Number -> Number -> Number
 subT a b
   | a >= b = withNat a $
              \(Proxy :: Proxy a) ->
@@ -34,77 +45,77 @@
                      natVal (Proxy :: Proxy (a - b))
   | otherwise = error "a - b < 0"
 
-mulT :: Integer -> Integer -> Integer
+mulT :: Number -> Number -> Number
 mulT a b = withNat a $
            \(Proxy :: Proxy a) ->
              withNat b $
              \(Proxy :: Proxy b) ->
                natVal (Proxy :: Proxy (a * b))
 
-maxT :: Integer -> Integer -> Integer
+maxT :: Number -> Number -> Number
 maxT a b = withNat a $
            \(Proxy :: Proxy a) ->
              withNat b $
              \(Proxy :: Proxy b) ->
                natVal (Proxy :: Proxy (Max a b))
 
-logT :: Integer -> Integer
+logT :: Number -> Number
 logT n = withNat n $ \(Proxy :: Proxy n) ->
                            natVal (Proxy :: Proxy (Log n))
 
-test1 :: forall n . KnownNat n => Proxy n -> Integer
+test1 :: forall n . KnownNat n => Proxy n -> Number
 test1 _ = natVal (Proxy :: Proxy n) + natVal (Proxy :: Proxy (n+2))
 
-test2 :: forall n . KnownNat n => Proxy n -> Integer
+test2 :: forall n . KnownNat n => Proxy n -> Number
 test2 _ = natVal (Proxy :: Proxy (n*3))
 
-test3 :: forall n m . (KnownNat n, KnownNat m) => Proxy n -> Proxy m -> Integer
+test3 :: forall n m . (KnownNat n, KnownNat m) => Proxy n -> Proxy m -> Number
 test3 _ _ = natVal (Proxy :: Proxy (n+m))
 
-test4 :: forall n m . (KnownNat n, KnownNat m) => Proxy n -> Proxy m -> Integer
+test4 :: forall n m . (KnownNat n, KnownNat m) => Proxy n -> Proxy m -> Number
 test4 _ _ = natVal (Proxy :: Proxy (n*m))
 
-test5 :: forall n m . (KnownNat n, KnownNat m) => Proxy n -> Proxy m -> Integer
+test5 :: forall n m . (KnownNat n, KnownNat m) => Proxy n -> Proxy m -> Number
 test5 _ _ = natVal (Proxy :: Proxy (n^m))
 
-test6 :: forall n m . (KnownNat n, KnownNat m) => Proxy n -> Proxy m -> Integer
+test6 :: forall n m . (KnownNat n, KnownNat m) => Proxy n -> Proxy m -> Number
 test6 _ _ = natVal (Proxy :: Proxy ((n^m)+(n*m)))
 
-test7 :: forall n m . (KnownNat m, KnownNat n) => Proxy n -> Proxy m -> Integer
+test7 :: forall n m . (KnownNat m, KnownNat n) => Proxy n -> Proxy m -> Number
 test7 _ _ = natVal (Proxy :: Proxy (Max n m + 1))
 
-test8 :: forall n m . (KnownNat (Min n m)) => Proxy n -> Proxy m -> Integer
+test8 :: forall n m . (KnownNat (Min n m)) => Proxy n -> Proxy m -> Number
 test8 _ _ = natVal (Proxy :: Proxy (Min n m + 1))
 
-test9 :: forall n m . (KnownNat m, KnownNat n, n <= m) => Proxy m -> Proxy n 
-> Integer
+test9 :: forall n m . (KnownNat m, KnownNat n, n <= m) => Proxy m -> Proxy n 
-> Number
 test9 _ _ = natVal (Proxy :: Proxy (m-n))
 
-test10 :: forall (n :: Nat) m . (KnownNat m) => Proxy m -> Proxy n -> Integer
+test10 :: forall (n :: Nat) m . (KnownNat m) => Proxy m -> Proxy n -> Number
 test10 _ _ = natVal (Proxy :: Proxy (m-n+n))
 
-test11 :: forall m . (KnownNat m) => Proxy m -> Integer
+test11 :: forall m . (KnownNat m) => Proxy m -> Number
 test11 _ = natVal (Proxy @ (m*m))
 
-test12 :: forall m . (KnownNat (m+1)) => Proxy m -> Integer
+test12 :: forall m . (KnownNat (m+1)) => Proxy m -> Number
 test12 = natVal
 
-test13 :: forall m . (KnownNat (m+3)) => Proxy m -> Integer
+test13 :: forall m . (KnownNat (m+3)) => Proxy m -> Number
 test13 = natVal
 
-test14 :: forall m . (KnownNat (4+m)) => Proxy (7+m) -> Integer
+test14 :: forall m . (KnownNat (4+m)) => Proxy (7+m) -> Number
 test14 = natVal
 
 type family Foo (m :: Nat) = (result :: Nat) | result -> m
 fakeFooEvidence :: 1 :~: Foo 1
 fakeFooEvidence = unsafeCoerce Refl
 
-test15 :: KnownNat (4 + Foo 1) => Proxy (Foo 1) -> Proxy (4 + Foo 1) -> Integer
+test15 :: KnownNat (4 + Foo 1) => Proxy (Foo 1) -> Proxy (4 + Foo 1) -> Number
 test15 _ _ = natVal (Proxy @ (Foo 1 + 7))
 
-test16 :: KnownNat (4 + Foo 1 + Foo 1) => Proxy (Foo 1) -> Proxy (4 + Foo 1 + 
Foo 1) -> Integer
+test16 :: KnownNat (4 + Foo 1 + Foo 1) => Proxy (Foo 1) -> Proxy (4 + Foo 1 + 
Foo 1) -> Number
 test16 _ _ = natVal (Proxy @ (Foo 1 + 7 + Foo 1))
 
-test17 :: KnownNat (4 + 2 * Foo 1 + Foo 1) => Proxy (Foo 1) -> Proxy (4 + 2 * 
Foo 1 + Foo 1) -> Integer
+test17 :: KnownNat (4 + 2 * Foo 1 + Foo 1) => Proxy (Foo 1) -> Proxy (4 + 2 * 
Foo 1 + Foo 1) -> Number
 test17 _ _ = natVal (Proxy @ (2 * Foo 1 + 7 + Foo 1))
 
 data SNat :: Nat -> * where
@@ -131,19 +142,19 @@
 test19 :: SNat (a+b) -> SNat b -> SNat a
 test19 = subSNat
 
-test20 :: forall a . (KnownNat (3 * a - a)) => Proxy a -> Integer
+test20 :: forall a . (KnownNat (3 * a - a)) => Proxy a -> Number
 test20 _ = natVal (Proxy @ (2 * a))
 
-test21 :: forall m n . (KnownNat (m+n), KnownNat m) => Proxy (m+n) -> Proxy m 
-> Integer
+test21 :: forall m n . (KnownNat (m+n), KnownNat m) => Proxy (m+n) -> Proxy m 
-> Number
 test21 _ _ = natVal (Proxy :: Proxy n)
 
-test22 :: forall x y . (KnownNat x, KnownNat y) => Proxy x -> Proxy y -> 
Integer
+test22 :: forall x y . (KnownNat x, KnownNat y) => Proxy x -> Proxy y -> Number
 test22 _ _ = natVal (Proxy :: Proxy (y*x*y))
 
 test23 :: SNat addrSize -> SNat ((addrSize + 1) - (addrSize - 1))
 test23 SNat = SNat
 
-test24 :: (KnownNat n, n ~ (m+1)) => proxy m -> Integer
+test24 :: (KnownNat n, n ~ (m+1)) => proxy m -> Number
 test24 = natVal
 
 tests :: TestTree
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ghc-typelits-knownnat-0.2.4/tests/TestFunctions.hs 
new/ghc-typelits-knownnat-0.3/tests/TestFunctions.hs
--- old/ghc-typelits-knownnat-0.2.4/tests/TestFunctions.hs      2017-04-10 
17:27:52.000000000 +0200
+++ new/ghc-typelits-knownnat-0.3/tests/TestFunctions.hs        2017-05-02 
10:50:43.000000000 +0200
@@ -1,4 +1,4 @@
-{-# LANGUAGE DataKinds, FlexibleInstances, GADTs, KindSignatures,
+{-# LANGUAGE CPP, DataKinds, FlexibleInstances, GADTs, KindSignatures,
              MultiParamTypeClasses, RankNTypes, ScopedTypeVariables, 
TemplateHaskell,
              TypeApplications, TypeFamilies, TypeOperators,
              UndecidableInstances #-}
@@ -9,7 +9,12 @@
 import Data.Singletons.TH    (genDefunSymbols)
 import Data.Type.Bool        (If)
 import GHC.TypeLits.KnownNat
+#if __GLASGOW_HASKELL__ >= 802
+import GHC.TypeNats
+import Numeric.Natural
+#else
 import GHC.TypeLits
+#endif
 
 type family Max (a :: Nat) (b :: Nat) :: Nat where
   Max 0 b = b -- See [Note: single equation TFs are treated like synonyms]
@@ -38,17 +43,26 @@
   Min a b = If (a <=? b) a b
 
 -- Unary functions.
-
+#if __GLASGOW_HASKELL__ >= 802
+withNat :: Natural -> (forall n. (KnownNat n) => Proxy n -> r) -> r
+withNat n f = case someNatVal n of
+  SomeNat proxy -> f proxy
+#else
 withNat :: Integer -> (forall n. (KnownNat n) => Proxy n -> r) -> r
 withNat n f = case someNatVal n of
                Just (SomeNat proxy) -> f proxy
                Nothing              -> error ("withNat: negative value (" ++ 
show n ++ ")")
+#endif
 
 type family Log (n :: Nat) :: Nat where
 
 genDefunSymbols [''Log]
 
+#if __GLASGOW_HASKELL__ >= 802
+logInt :: Natural -> Natural
+#else
 logInt :: Integer -> Integer
+#endif
 logInt 0 = error "log 0"
 logInt n = go 0
   where


Reply via email to