hashable-extras 0.2.2 → 0.2.3
raw patch · 4 files changed
+12/−5 lines, 4 filesdep +transformers-compatdep ~transformersPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: transformers-compat
Dependency ranges changed: transformers
API changes (from Hackage documentation)
- Data.Hashable.Extras: instance (Hashable a, Hashable b) => Hashable1 ((,,) a b)
- Data.Hashable.Extras: instance (Hashable a, Hashable b) => Hashable2 ((,,,) a b)
- Data.Hashable.Extras: instance (Hashable a, Hashable b, Hashable c) => Hashable1 ((,,,) a b c)
- Data.Hashable.Extras: instance (Hashable a, Hashable b, Hashable c) => Hashable2 ((,,,,) a b c)
- Data.Hashable.Extras: instance (Hashable a, Hashable b, Hashable c, Hashable d) => Hashable1 ((,,,,) a b c d)
- Data.Hashable.Extras: instance (Hashable a, Hashable b, Hashable c, Hashable d) => Hashable2 ((,,,,,) a b c d)
- Data.Hashable.Extras: instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable1 ((,,,,,) a b c d e)
- Data.Hashable.Extras: instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable2 ((,,,,,,) a b c d e)
- Data.Hashable.Extras: instance (Hashable a, Hashable b, Hashable c, Hashable d, Hashable e, Hashable f) => Hashable1 ((,,,,,,) a b c d e f)
- Data.Hashable.Extras: instance Hashable Hashed
- Data.Hashable.Extras: instance Hashable Salt
- Data.Hashable.Extras: instance Hashable a => Hashable1 ((,) a)
- Data.Hashable.Extras: instance Hashable a => Hashable1 (Either a)
- Data.Hashable.Extras: instance Hashable a => Hashable2 ((,,) a)
- Data.Hashable.Extras: instance Hashable1 Identity
- Data.Hashable.Extras: instance Hashable1 Maybe
- Data.Hashable.Extras: instance Hashable1 []
- Data.Hashable.Extras: instance Hashable2 (,)
- Data.Hashable.Extras: instance Hashable2 Either
- Data.Hashable.Extras: unhashed :: Hashed -> Int -> Int
+ Data.Hashable.Extras: [unhashed] :: Hashed -> Int -> Int
+ Data.Hashable.Extras: instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable b) => Data.Hashable.Extras.Hashable1 ((,,) a b)
+ Data.Hashable.Extras: instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable b) => Data.Hashable.Extras.Hashable2 ((,,,) a b)
+ Data.Hashable.Extras: instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable b, Data.Hashable.Class.Hashable c) => Data.Hashable.Extras.Hashable1 ((,,,) a b c)
+ Data.Hashable.Extras: instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable b, Data.Hashable.Class.Hashable c) => Data.Hashable.Extras.Hashable2 ((,,,,) a b c)
+ Data.Hashable.Extras: instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable b, Data.Hashable.Class.Hashable c, Data.Hashable.Class.Hashable d) => Data.Hashable.Extras.Hashable1 ((,,,,) a b c d)
+ Data.Hashable.Extras: instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable b, Data.Hashable.Class.Hashable c, Data.Hashable.Class.Hashable d) => Data.Hashable.Extras.Hashable2 ((,,,,,) a b c d)
+ Data.Hashable.Extras: instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable b, Data.Hashable.Class.Hashable c, Data.Hashable.Class.Hashable d, Data.Hashable.Class.Hashable e) => Data.Hashable.Extras.Hashable1 ((,,,,,) a b c d e)
+ Data.Hashable.Extras: instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable b, Data.Hashable.Class.Hashable c, Data.Hashable.Class.Hashable d, Data.Hashable.Class.Hashable e) => Data.Hashable.Extras.Hashable2 ((,,,,,,) a b c d e)
+ Data.Hashable.Extras: instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable b, Data.Hashable.Class.Hashable c, Data.Hashable.Class.Hashable d, Data.Hashable.Class.Hashable e, Data.Hashable.Class.Hashable f) => Data.Hashable.Extras.Hashable1 ((,,,,,,) a b c d e f)
+ Data.Hashable.Extras: instance Data.Hashable.Class.Hashable Data.Hashable.Extras.Hashed
+ Data.Hashable.Extras: instance Data.Hashable.Class.Hashable Data.Hashable.Extras.Salt
+ Data.Hashable.Extras: instance Data.Hashable.Class.Hashable a => Data.Hashable.Extras.Hashable1 ((,) a)
+ Data.Hashable.Extras: instance Data.Hashable.Class.Hashable a => Data.Hashable.Extras.Hashable1 (Data.Either.Either a)
+ Data.Hashable.Extras: instance Data.Hashable.Class.Hashable a => Data.Hashable.Extras.Hashable2 ((,,) a)
+ Data.Hashable.Extras: instance Data.Hashable.Extras.Hashable1 Data.Functor.Identity.Identity
+ Data.Hashable.Extras: instance Data.Hashable.Extras.Hashable1 GHC.Base.Maybe
+ Data.Hashable.Extras: instance Data.Hashable.Extras.Hashable1 []
+ Data.Hashable.Extras: instance Data.Hashable.Extras.Hashable2 (,)
+ Data.Hashable.Extras: instance Data.Hashable.Extras.Hashable2 Data.Either.Either
Files
- CHANGELOG.markdown +6/−0
- README.markdown +1/−1
- hashable-extras.cabal +3/−2
- src/Data/Hashable/Extras.hs +2/−2
CHANGELOG.markdown view
@@ -1,3 +1,9 @@+0.2.3+-----+* ghc 8 support+* `transformers` 0.5 support+* Removed redundant constraints on default definitions.+ 0.2.2 ----- * Removed spurious `generic-deriving` dependency
README.markdown view
@@ -1,7 +1,7 @@ hashable-extras =============== -[](http://travis-ci.org/ekmett/hashable-extras)+[](https://hackage.haskell.org/package/hashable-extras) [](http://travis-ci.org/ekmett/hashable-extras) This package provides higher order Hashable types
hashable-extras.cabal view
@@ -1,6 +1,6 @@ name: hashable-extras category: Data, Hash-version: 0.2.2+version: 0.2.3 license: BSD3 cabal-version: >= 1.8 license-file: LICENSE@@ -46,7 +46,8 @@ bifunctors >= 4 && < 6, bytestring >= 0.9 && < 0.11, hashable >= 1.1.2.3 && < 1.3,- transformers >= 0.2 && < 0.5+ transformers >= 0.2 && < 0.6,+ transformers-compat >= 0.3 && < 1 exposed-modules: Data.Hashable.Extras
src/Data/Hashable/Extras.hs view
@@ -44,7 +44,7 @@ class Hashable1 t where hashWithSalt1 :: Hashable a => Int -> t a -> Int #ifndef HLINT- default hashWithSalt1 :: (Hashable a, Hashable (t a)) => Int -> t a -> Int+ default hashWithSalt1 :: Hashable (t a) => Int -> t a -> Int hashWithSalt1 = hashWithSalt {-# INLINE hashWithSalt1 #-} #endif@@ -70,7 +70,7 @@ class Hashable2 t where hashWithSalt2 :: (Hashable a, Hashable b) => Int -> t a b -> Int #ifndef HLINT- default hashWithSalt2 :: (Hashable a, Hashable b, Hashable (t a b)) => Int -> t a b -> Int+ default hashWithSalt2 :: Hashable (t a b) => Int -> t a b -> Int hashWithSalt2 = hashWithSalt {-# INLINE hashWithSalt2 #-} #endif