packages feed

disjoint-containers 0.2.4 → 0.3.0

raw patch · 4 files changed

+6/−33 lines, 4 filesdep −aesondep ~quickcheck-classesdep ~transformersPVP ok

version bump matches the API change (PVP)

Dependencies removed: aeson

Dependency ranges changed: quickcheck-classes, transformers

API changes (from Hackage documentation)

- Data.DisjointMap: instance (Data.Aeson.Types.FromJSON.FromJSON k, Data.Aeson.Types.FromJSON.FromJSON v, GHC.Classes.Ord k) => Data.Aeson.Types.FromJSON.FromJSON (Data.DisjointMap.DisjointMap k v)
- Data.DisjointMap: instance (Data.Aeson.Types.ToJSON.ToJSON k, Data.Aeson.Types.ToJSON.ToJSON v) => Data.Aeson.Types.ToJSON.ToJSON (Data.DisjointMap.DisjointMap k v)
- Data.DisjointSet: instance (GHC.Classes.Ord a, Data.Aeson.Types.FromJSON.FromJSON a) => Data.Aeson.Types.FromJSON.FromJSON (Data.DisjointSet.DisjointSet a)
- Data.DisjointSet: instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Data.DisjointSet.DisjointSet a)

Files

disjoint-containers.cabal view
@@ -1,5 +1,5 @@ name: disjoint-containers-version: 0.2.4+version: 0.3.0 synopsis: Disjoint containers description: Disjoint containers homepage: https://github.com/andrewthad/disjoint-containers#readme@@ -20,9 +20,8 @@     Data.DisjointMap   build-depends:       base >= 4.11.1 && < 5-    , transformers >= 0.5 && < 0.6+    , transformers >= 0.5 && < 0.7     , containers >= 0.5 && < 0.7-    , aeson >= 0.11 && < 1.5   default-language: Haskell2010  test-suite test@@ -34,12 +33,11 @@     , disjoint-containers     , containers     , QuickCheck >= 2.11-    , quickcheck-classes >= 0.4.14.1+    , quickcheck-classes >= 0.5     , tasty     , tasty-quickcheck     , enum-types     , quickcheck-enum-instances-    , aeson     , semigroups   default-language: Haskell2010 
src/Data/DisjointMap.hs view
@@ -57,7 +57,6 @@ import Data.Bifunctor (first) import Data.Foldable (Foldable) import Data.Maybe (fromMaybe)-import Data.Aeson (ToJSON(..),FromJSON(..)) import Data.Foldable (foldlM) import qualified Data.Semigroup as SG import qualified Data.Map.Strict as M@@ -96,16 +95,6 @@ instance (Show k, Ord k, Show v) => Show (DisjointMap k v) where   show = showDisjointSet -instance (ToJSON k, ToJSON v) => ToJSON (DisjointMap k v) where-  toJSON = toJSON . toSets--instance (FromJSON k, FromJSON v, Ord k) => FromJSON (DisjointMap k v) where-  parseJSON x = do-    theSets <- parseJSON x-    case fromSets theSets of-      Nothing -> fail "the sets comprising the DisjointSet were not distinct"-      Just s -> return s- fromSets :: Ord k => [(Set k,v)] -> Maybe (DisjointMap k v) fromSets xs = case unionDistinctAll (map fst xs) of   Nothing -> Nothing@@ -395,6 +384,7 @@  >>> import Data.Function ((&)) >>> data Rating = Lowest | Low | Medium | High | Highest deriving (Eq,Ord,Show)+>>> instance Semigroup Rating where (<>) = min >>> instance Monoid Rating where mempty = Highest; mappend = min  Notice that the 'Monoid' instance combines ratings by choosing
src/Data/DisjointSet.hs view
@@ -56,7 +56,6 @@ import Data.Set (Set) import Data.Semigroup (Semigroup) import Data.Maybe (fromMaybe)-import Data.Aeson (ToJSON(..),FromJSON(..)) import Data.Foldable (foldlM) import qualified Data.Semigroup import qualified Data.Map.Strict as M@@ -77,16 +76,6 @@  showInternal :: Show a => DisjointSet a -> String showInternal (DisjointSet p r) = show (RevealDisjointSet p r)--instance ToJSON a => ToJSON (DisjointSet a) where-  toJSON = toJSON . toSets--instance (Ord a, FromJSON a) => FromJSON (DisjointSet a) where-  parseJSON x = do-    theSets <- parseJSON x-    case fromSets theSets of-      Nothing -> fail "the sets comprising the DisjointSet were not distinct"-      Just s -> return s  fromSets :: Ord a => [Set a] -> Maybe (DisjointSet a) fromSets xs = case unionDistinctAll xs of
test/Spec.hs view
@@ -2,7 +2,6 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} -import Data.Aeson (ToJSON,FromJSON) import Data.Bifunctor (first) import Data.DisjointMap (DisjointMap) import Data.DisjointSet (DisjointSet)@@ -15,7 +14,7 @@ import Data.Set (Set) import Data.Word import Test.QuickCheck-import Test.QuickCheck.Classes (jsonLaws,Laws(..))+import Test.QuickCheck.Classes (Laws(..)) import Test.Tasty (TestTree,defaultMain,testGroup)  import qualified Data.DisjointMap as DM@@ -38,8 +37,6 @@       ]     , TQC.testProperty "singletons" propSingletons     , TQC.testProperty "equivalences" propEquivalances-    , lawsToTest (QCC.jsonLaws (Proxy :: Proxy (DisjointSet Word8)))-    , lawsToTest (QCC.jsonLaws (Proxy :: Proxy (DisjointSet Word8)))     , lawsToTest (QCC.monoidLaws (Proxy :: Proxy (DisjointSet Integer)))     , lawsToTest (QCC.commutativeMonoidLaws (Proxy :: Proxy (DisjointSet Integer)))     ]@@ -50,7 +47,6 @@       , TQC.testProperty "extra" propMapInsertUnionOrder       ]     , TQC.testProperty "insert" propMapInsertOrder-    , lawsToTest (QCC.jsonLaws (Proxy :: Proxy (DisjointMap Word8 WrapWord8)))     , lawsToTest (QCC.monoidLaws (Proxy :: Proxy (DisjointMap Word8 G)))     , lawsToTest (QCC.commutativeMonoidLaws (Proxy :: Proxy (DisjointMap Word8 G)))     ]@@ -171,7 +167,7 @@   shrink = mapMaybe DM.fromSets . shrink . DM.toSets  newtype WrapWord8 = WrapWord8 Word8-  deriving (FromJSON,ToJSON,Show,Eq,Arbitrary,Ord)+  deriving (Show,Eq,Arbitrary,Ord)  instance Semigroup WrapWord8 where   WrapWord8 a <> WrapWord8 b = WrapWord8 (a + b)