packages feed

discrimination 0.4.1 → 0.5

raw patch · 6 files changed

+23/−15 lines, 6 filesdep ~basedep ~containersdep ~deepseqPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, containers, deepseq, ghc-bignum, hashable, integer-gmp, primitive

API changes (from Hackage documentation)

- Data.Discrimination: class Grouping a
+ Data.Discrimination: class Eq a => Grouping a
- Data.Discrimination: class Grouping1 f
+ Data.Discrimination: class Eq1 f => Grouping1 f
- Data.Discrimination: class Grouping a => Sorting a
+ Data.Discrimination: class (Grouping a, Ord a) => Sorting a
- Data.Discrimination: class Grouping1 f => Sorting1 f
+ Data.Discrimination: class (Grouping1 f, Ord1 f) => Sorting1 f
- Data.Discrimination.Grouping: class Grouping a
+ Data.Discrimination.Grouping: class Eq a => Grouping a
- Data.Discrimination.Grouping: class Grouping1 f
+ Data.Discrimination.Grouping: class Eq1 f => Grouping1 f
- Data.Discrimination.Sorting: class Grouping a => Sorting a
+ Data.Discrimination.Sorting: class (Grouping a, Ord a) => Sorting a
- Data.Discrimination.Sorting: class Grouping1 f => Sorting1 f
+ Data.Discrimination.Sorting: class (Grouping1 f, Ord1 f) => Sorting1 f

Files

CHANGELOG.markdown view
@@ -1,3 +1,8 @@+## 0.5 [2022-06-15]++* `Eq` is a superclass of `Grouping`, `Ord` is a superclass of `Ordering`.+* Drop support for GHC prior 8+ ## 0.4.1 [2021-01-08]  * GHC-9.0 compatibility
common/Utils.hs view
@@ -50,7 +50,7 @@         | HS.member x s = go s xs         | otherwise     = x : go (HS.insert x s) xs - -- | Sort via vector.+-- | Sort via vector. introsort :: Ord a => [a] -> [a] introsort xs = runST $ do     v <- V.unsafeThaw (V.fromList xs)
discrimination.cabal view
@@ -1,6 +1,6 @@ name:          discrimination category:      Data, Sorting-version:       0.4.1+version:       0.5 license:       BSD3 cabal-version: >= 1.10 license-file:  LICENSE@@ -11,7 +11,7 @@ bug-reports:   http://github.com/ekmett/discrimination/issues copyright:     Copyright (C) 2014-2015 Edward A. Kmett build-type:    Simple-tested-with:   GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.3+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.3, GHC == 9.4.1 synopsis:      Fast generic linear-time sorting, joins and container construction. description:   This package provides fast, generic, linear-time discrimination and sorting.@@ -43,21 +43,21 @@    build-depends:     array         >= 0.5.1.0 && < 0.6,-    base          >= 4.8     && < 5,+    base          >= 4.9     && < 5,     containers    >= 0.5.6.2 && < 0.7,     contravariant >= 1.5.3   && < 2,     deepseq       >= 1.4.1.1 && < 1.5,     ghc-prim,-    hashable      >= 1.2.7.0 && < 1.4,+    hashable      >= 1.2.7.0 && < 1.5,     primitive     >= 0.7.1.0 && < 0.8,     promises      >= 0.3     && < 0.4,-    transformers  >= 0.4.2.0 && < 0.6+    transformers  >= 0.4.2.0 && < 0.7    if !impl(ghc >=8.0)     build-depends: semigroups >= 0.18.5 && < 1    if impl(ghc >= 9.0)-    build-depends: ghc-bignum >= 1.0 && < 1.1+    build-depends: ghc-bignum >= 1.0 && < 1.3   else     build-depends: integer-gmp >= 1.0 && < 1.1 
src/Data/Discrimination/Grouping.hs view
@@ -47,6 +47,7 @@ import Data.Word import Numeric.Natural (Natural) import Prelude hiding (read, concat, mapM_)+import Data.Functor.Classes (Eq1 (..))  -- | Productive Stable Unordered Discriminator @@ -131,7 +132,7 @@ -- -- /Note:/ 'Eq' is a moral super class of 'Grouping'. -- It isn't because of some missing instances.-class Grouping a where+class Eq a => Grouping a where   -- | For every surjection @f@,   --   -- @@@ -181,13 +182,14 @@ #endif   grouping = divide (\r -> (numerator r, denominator r)) grouping grouping -instance (Grouping1 f, Grouping1 g, Grouping a) => Grouping (Compose f g a) where-  grouping = getCompose `contramap` grouping1 (grouping1 grouping)--class Grouping1 f where+class Eq1 f => Grouping1 f where   grouping1 :: Group a -> Group (f a)   default grouping1 :: Deciding1 Grouping f => Group a -> Group (f a)   grouping1 = deciding1 (Proxy :: Proxy Grouping) grouping++instance (Grouping1 f, Grouping1 g, Grouping a) => Grouping (Compose f g a) where+  grouping = getCompose `contramap` grouping1 (grouping1 grouping)+  instance Grouping1 [] instance Grouping1 Maybe
src/Data/Discrimination/Internal.hs view
@@ -100,7 +100,7 @@ {-# INLINE naturalCases #-}  -- We need to reverse the limb array. Its stored least-significant word first--- but for comparasion to work right we need most-significant words first.+-- but for comparison to work right we need most-significant words first. #ifdef MIN_VERSION_ghc_bignum decomposeBigNat :: ByteArray# -> (Int, [Word]) decomposeBigNat ba = let pa = PrimArray ba :: PrimArray Word in (sizeofPrimArray pa, primArrayToReverseList pa)
src/Data/Discrimination/Sorting.hs view
@@ -55,6 +55,7 @@ import Data.Word import Numeric.Natural (Natural) import Prelude hiding (read, concat)+import Data.Functor.Classes (Ord1 (..))  -- $setup -- >>> import qualified Data.Map as Map@@ -112,7 +113,7 @@ -- @ -- 'sortingCompare' x y ≡ 'compare' x y -- @-class Grouping a => Sorting a where+class (Grouping a, Ord a) => Sorting a where   -- | For every strictly monotone-increasing function @f@:   --   -- @@@ -189,7 +190,7 @@ instance (Sorting1 f, Sorting1 g, Sorting a) => Sorting (Compose f g a) where   sorting = getCompose `contramap` sorting1 (sorting1 sorting) -class Grouping1 f => Sorting1 f  where+class (Grouping1 f, Ord1 f) => Sorting1 f  where   sorting1 :: Sort a -> Sort (f a)   default sorting1 :: Deciding1 Sorting f => Sort a -> Sort (f a)   sorting1 = deciding1 (Proxy :: Proxy Sorting) sorting