hashable-extras-0.2.3: Higher-rank Hashable

Copyright(c) Edward Kmett 2013
LicenseBSD3
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellSafe
LanguageHaskell98

Data.Hashable.Extras

Description

 

Synopsis

Documentation

class Hashable1 t where Source #

Methods

hashWithSalt1 :: Hashable a => Int -> t a -> Int Source #

hashWithSalt1 :: Hashable (t a) => Int -> t a -> Int Source #

hash1 :: Hashable a => t a -> Int Source #

Instances

Hashable1 [] Source # 

Methods

hashWithSalt1 :: Hashable a => Int -> [a] -> Int Source #

hash1 :: Hashable a => [a] -> Int Source #

Hashable1 Maybe Source # 

Methods

hashWithSalt1 :: Hashable a => Int -> Maybe a -> Int Source #

hash1 :: Hashable a => Maybe a -> Int Source #

Hashable1 Identity Source # 
Hashable a => Hashable1 (Either a) Source # 

Methods

hashWithSalt1 :: Hashable a => Int -> Either a a -> Int Source #

hash1 :: Hashable a => Either a a -> Int Source #

Hashable a => Hashable1 ((,) a) Source # 

Methods

hashWithSalt1 :: Hashable a => Int -> (a, a) -> Int Source #

hash1 :: Hashable a => (a, a) -> Int Source #

(Hashable a, Hashable b) => Hashable1 ((,,) a b) Source # 

Methods

hashWithSalt1 :: Hashable a => Int -> (a, b, a) -> Int Source #

hash1 :: Hashable a => (a, b, a) -> Int Source #

(Hashable a, Hashable b, Hashable c) => Hashable1 ((,,,) a b c) Source # 

Methods

hashWithSalt1 :: Hashable a => Int -> (a, b, c, a) -> Int Source #

hash1 :: Hashable a => (a, b, c, a) -> Int Source #

(Hashable a, Hashable b, Hashable c, Hashable d) => Hashable1 ((,,,,) a b c d) Source # 

Methods

hashWithSalt1 :: Hashable a => Int -> (a, b, c, d, a) -> Int Source #

hash1 :: Hashable a => (a, b, c, d, a) -> Int Source #

(Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable1 ((,,,,,) a b c d e) Source # 

Methods

hashWithSalt1 :: Hashable a => Int -> (a, b, c, d, e, a) -> Int Source #

hash1 :: Hashable a => (a, b, c, d, e, a) -> Int Source #

(Hashable a, Hashable b, Hashable c, Hashable d, Hashable e, Hashable f) => Hashable1 ((,,,,,,) a b c d e f) Source # 

Methods

hashWithSalt1 :: Hashable a => Int -> (a, b, c, d, e, f, a) -> Int Source #

hash1 :: Hashable a => (a, b, c, d, e, f, a) -> Int Source #

class Hashable2 t where Source #

Methods

hashWithSalt2 :: (Hashable a, Hashable b) => Int -> t a b -> Int Source #

hashWithSalt2 :: Hashable (t a b) => Int -> t a b -> Int Source #

hash2 :: (Hashable a, Hashable b) => t a b -> Int Source #

Instances

Hashable2 Either Source # 

Methods

hashWithSalt2 :: (Hashable a, Hashable b) => Int -> Either a b -> Int Source #

hash2 :: (Hashable a, Hashable b) => Either a b -> Int Source #

Hashable2 (,) Source # 

Methods

hashWithSalt2 :: (Hashable a, Hashable b) => Int -> (a, b) -> Int Source #

hash2 :: (Hashable a, Hashable b) => (a, b) -> Int Source #

Hashable a => Hashable2 ((,,) a) Source # 

Methods

hashWithSalt2 :: (Hashable a, Hashable b) => Int -> (a, a, b) -> Int Source #

hash2 :: (Hashable a, Hashable b) => (a, a, b) -> Int Source #

(Hashable a, Hashable b) => Hashable2 ((,,,) a b) Source # 

Methods

hashWithSalt2 :: (Hashable a, Hashable b) => Int -> (a, b, a, b) -> Int Source #

hash2 :: (Hashable a, Hashable b) => (a, b, a, b) -> Int Source #

(Hashable a, Hashable b, Hashable c) => Hashable2 ((,,,,) a b c) Source # 

Methods

hashWithSalt2 :: (Hashable a, Hashable b) => Int -> (a, b, c, a, b) -> Int Source #

hash2 :: (Hashable a, Hashable b) => (a, b, c, a, b) -> Int Source #

(Hashable a, Hashable b, Hashable c, Hashable d) => Hashable2 ((,,,,,) a b c d) Source # 

Methods

hashWithSalt2 :: (Hashable a, Hashable b) => Int -> (a, b, c, d, a, b) -> Int Source #

hash2 :: (Hashable a, Hashable b) => (a, b, c, d, a, b) -> Int Source #

(Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable2 ((,,,,,,) a b c d e) Source # 

Methods

hashWithSalt2 :: (Hashable a, Hashable b) => Int -> (a, b, c, d, e, a, b) -> Int Source #

hash2 :: (Hashable a, Hashable b) => (a, b, c, d, e, a, b) -> Int Source #

data Hashed Source #

Constructors

Hashed 

Fields

Instances

hashWith1 :: (Functor t, Hashable1 t) => (Int -> a -> Int) -> Int -> t a -> Int Source #

hashWith2 :: (Bifunctor t, Hashable2 t) => (Int -> a -> Int) -> (Int -> b -> Int) -> Int -> t a b -> Int Source #

salt :: Int Source #

Extract the default salt used by Hashable