packages feed

typelits-witnesses 0.4.0.0 → 0.4.0.1

raw patch · 4 files changed

+31/−14 lines, 4 filesdep ~basedep ~dependent-sumPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base, dependent-sum

API changes (from Hackage documentation)

- GHC.TypeLits.Witnesses: instance Data.GADT.Compare.GCompare GHC.TypeLits.Witnesses.SNat
- GHC.TypeLits.Witnesses: instance Data.GADT.Compare.GCompare GHC.TypeLits.Witnesses.SSymbol
- GHC.TypeLits.Witnesses: instance Data.GADT.Compare.GEq GHC.TypeLits.Witnesses.SNat
- GHC.TypeLits.Witnesses: instance Data.GADT.Compare.GEq GHC.TypeLits.Witnesses.SSymbol
- GHC.TypeLits.Witnesses: instance Data.GADT.Show.GShow GHC.TypeLits.Witnesses.SNat
- GHC.TypeLits.Witnesses: instance Data.GADT.Show.GShow GHC.TypeLits.Witnesses.SSymbol
+ GHC.TypeLits.Witnesses: instance Data.GADT.Internal.GCompare GHC.TypeLits.Witnesses.SNat
+ GHC.TypeLits.Witnesses: instance Data.GADT.Internal.GCompare GHC.TypeLits.Witnesses.SSymbol
+ GHC.TypeLits.Witnesses: instance Data.GADT.Internal.GEq GHC.TypeLits.Witnesses.SNat
+ GHC.TypeLits.Witnesses: instance Data.GADT.Internal.GEq GHC.TypeLits.Witnesses.SSymbol
+ GHC.TypeLits.Witnesses: instance Data.GADT.Internal.GShow GHC.TypeLits.Witnesses.SNat
+ GHC.TypeLits.Witnesses: instance Data.GADT.Internal.GShow GHC.TypeLits.Witnesses.SSymbol
- GHC.TypeLits.Compare: [CEQ] :: (CmpNat m n :~: 'EQ) -> (m :~: n) -> SCmpNat m n
+ GHC.TypeLits.Compare: [CEQ] :: (CmpNat m n :~: 'EQ) -> (m :~: n) -> SCmpNat m n
- GHC.TypeLits.Compare: [CGT] :: (CmpNat m n :~: 'GT) -> SCmpNat m n
+ GHC.TypeLits.Compare: [CGT] :: (CmpNat m n :~: 'GT) -> SCmpNat m n
- GHC.TypeLits.Compare: [CLT] :: (CmpNat m n :~: 'LT) -> SCmpNat m n
+ GHC.TypeLits.Compare: [CLT] :: (CmpNat m n :~: 'LT) -> SCmpNat m n
- GHC.TypeLits.Compare: [LE] :: ((m <=? n) :~: 'True) -> m :<=? n
+ GHC.TypeLits.Compare: [LE] :: ((m <=? n) :~: 'True) -> m :<=? n
- GHC.TypeLits.Compare: [NLE] :: ((m <=? n) :~: 'False) -> ((n <=? m) :~: 'True) -> m :<=? n
+ GHC.TypeLits.Compare: [NLE] :: ((m <=? n) :~: 'False) -> ((n <=? m) :~: 'True) -> m :<=? n
- GHC.TypeLits.Compare: cmpNatEq :: (CmpNat m n :~: 'EQ) -> m :~: n
+ GHC.TypeLits.Compare: cmpNatEq :: (CmpNat m n :~: 'EQ) -> m :~: n
- GHC.TypeLits.Compare: eqCmpNat :: (m :~: n) -> CmpNat m n :~: 'EQ
+ GHC.TypeLits.Compare: eqCmpNat :: (m :~: n) -> CmpNat m n :~: 'EQ
- GHC.TypeLits.Compare: isLE :: (KnownNat m, KnownNat n) => p m -> q n -> Maybe ((m <=? n) :~: 'True)
+ GHC.TypeLits.Compare: isLE :: (KnownNat m, KnownNat n) => p m -> q n -> Maybe ((m <=? n) :~: 'True)
- GHC.TypeLits.Compare: isNLE :: (KnownNat m, KnownNat n) => p m -> q n -> Maybe ((m <=? n) :~: 'False)
+ GHC.TypeLits.Compare: isNLE :: (KnownNat m, KnownNat n) => p m -> q n -> Maybe ((m <=? n) :~: 'False)
- GHC.TypeLits.Witnesses: (%*) :: SNat n -> SNat m -> SNat (n - m)
+ GHC.TypeLits.Witnesses: (%*) :: SNat n -> SNat m -> SNat (n * m)
- GHC.TypeLits.Witnesses: minusSNat :: SNat n -> SNat m -> Either (CmpNat n m :~: 'LT) (SNat (n - m))
+ GHC.TypeLits.Witnesses: minusSNat :: SNat n -> SNat m -> Either (CmpNat n m :~: 'LT) (SNat (n - m))

Files

CHANGELOG.md view
@@ -1,6 +1,18 @@ Changelog ========= +Version 0.4.0.1+---------------++<https://github.com/mstksg/typelits-witnesses/releases/tag/v0.4.0.1>++*November 29, 2023*++*  Fix for GHC 8.2++*  Fix type of `(%*)`+*  `minusSNat` fixed+*  Qualified `cmpNat`+ Version 0.4.0.0 --------------- 
src/GHC/TypeLits/Compare.hs view
@@ -83,7 +83,7 @@   , isNLE     -- * 'CmpNat'   , SCmpNat(..)-  , cmpNat+  , GHC.TypeLits.Compare.cmpNat     -- ** Manipulating witnesses   , flipCmpNat   , cmpNatEq@@ -96,7 +96,9 @@  import           Data.Kind import           Data.Type.Equality-import           GHC.TypeLits+import           GHC.TypeLits ( Nat, KnownNat, CmpNat+                              , type (<=?)+                              , natVal ) import           Unsafe.Coerce import           Data.GADT.Compare 
src/GHC/TypeLits/Witnesses.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE RankNTypes                #-} {-# LANGUAGE ScopedTypeVariables       #-} {-# LANGUAGE StandaloneDeriving        #-}+{-# LANGUAGE NoStarIsType              #-} {-# LANGUAGE TypeInType                #-} {-# LANGUAGE TypeOperators             #-} {-# LANGUAGE ViewPatterns              #-}@@ -118,9 +119,12 @@ import           Data.Proxy import           Data.Type.Equality import           GHC.Natural-import           GHC.TypeLits hiding         (natVal, someNatVal)+import           GHC.TypeLits ( KnownSymbol, SomeSymbol(..)+                              , symbolVal, someSymbolVal, sameSymbol ) import           GHC.TypeLits.Compare hiding ((%<=?))-import           GHC.TypeNats+import           GHC.TypeNats ( KnownNat, SomeNat(..), CmpNat+                              , type (+), type (-), type (*), type (^)+                              , natVal, someNatVal, sameNat ) import           Unsafe.Coerce import qualified GHC.TypeLits.Compare        as Comp @@ -292,20 +296,20 @@     -> Either (CmpNat n m :~: 'LT) (SNat (n - m)) minusSNat (fromSNat->x) (fromSNat->y) = case minusNaturalMaybe x y of     Nothing -> Left (unsafeCoerce Refl)-    Just z  -> withSomeNat z unsafeCoerce+    Just z  -> withSomeNat z (Right . unsafeCoerce)  -- | A version of 'minusSNat' that just returns a 'Maybe'. minusSNat_ :: SNat n -> SNat m -> Maybe (SNat (n - m)) minusSNat_ x = either (const Nothing) Just . minusSNat x --- | Addition of 'SNat's.+-- | Multiplication of 'SNat's. -- -- This also will provide the correct 'KnownNat' instance for @'SNat' (n -- * m)@, so can be used as a way to "multiply" 'KnownNat' instances. -- -- This stands in for the function with the same name from -- "Data.Singletons.Prelude.Num".-(%*) :: SNat n -> SNat m -> SNat (n - m)+(%*) :: SNat n -> SNat m -> SNat (n * m) (%*) = unsafeLiftNatOp2 (*)  -- | Exponentiation of 'SNat's.@@ -326,7 +330,7 @@ -- | Compare @n@ and @m@, categorizing them into one of the constructors of -- 'SCmpNat'. sCmpNat :: SNat n -> SNat m -> SCmpNat n m-sCmpNat x@SNat y@SNat = cmpNat x y+sCmpNat x@SNat y@SNat = GHC.TypeLits.Compare.cmpNat x y  -- | An @'SSymbol' n@ is a witness for @'KnownSymbol' n@. --
typelits-witnesses.cabal view
@@ -1,13 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.31.1.+-- This file has been generated from package.yaml by hpack version 0.34.5. -- -- see: https://github.com/sol/hpack------ hash: 8a6351c34d982cd0199ea26cf5f6378e136998abb7019115d627268f8977bdda  name:           typelits-witnesses-version:        0.4.0.0+version:        0.4.0.1 synopsis:       Existential witnesses, singletons, and classes for operations on GHC TypeLits description:    This library contains:                 .@@ -28,8 +26,9 @@ copyright:      (c) Justin Le 2018 license:        MIT license-file:   LICENSE-tested-with:    GHC>=8.2 && <8.8 build-type:     Simple+tested-with:+    GHC>=8.2 extra-source-files:     README.md     CHANGELOG.md@@ -49,5 +48,5 @@   ghc-options: -Wall -Wredundant-constraints -Werror=incomplete-patterns -Wcompat   build-depends:       base >=4.10 && <5-    , dependent-sum+    , dependent-sum <0.8   default-language: Haskell2010