License | BSD3 |
---|---|
Maintainer | Alexey Karakulov <ankarakulov@gmail.com> |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Documentation
class Hashable a where
The class of types that can be converted to a hash value.
Minimal implementation: hashWithSalt
.
Nothing
hashWithSalt :: Int -> a -> Int infixl 0
Return a hash value for the argument, using the given salt.
The general contract of hashWithSalt
is:
- If two values are equal according to the
==
method, then applying thehashWithSalt
method on each of the two values must produce the same integer result if the same salt is used in each case. - It is not required that if two values are unequal
according to the
==
method, then applying thehashWithSalt
method on each of the two values must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal values may improve the performance of hashing-based data structures. - This method can be used to compute different hash values for
the same input by providing a different salt in each
application of the method. This implies that any instance
that defines
hashWithSalt
must make use of the salt in its implementation.
Like hashWithSalt
, but no salt is used. The default
implementation uses hashWithSalt
with some default salt.
Instances might want to implement this method to provide a more
efficient implementation than the default implementation.