-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A class for types that can be converted to a hash value -- -- This package defines a class, Hashable, for types that can be -- converted to a hash value. This class exists for the benefit of -- hashing-based data structures. The package provides instances for -- basic types and a way to combine hash values. @package hashable @version 1.2.4.0 -- | This module defines a class, Hashable, for types that can be -- converted to a hash value. This class exists for the benefit of -- hashing-based data structures. The module provides instances for most -- standard types. Efficient instances for other types can be generated -- automatically and effortlessly using the generics support in GHC 7.2 -- and above. -- -- The easiest way to get started is to use the hash function. -- Here is an example session with ghci. -- --
-- ghci> import Data.Hashable -- ghci> hash "foo" -- 60853164 --module Data.Hashable -- | The class of types that can be converted to a hash value. -- -- Minimal implementation: hashWithSalt. class Hashable a -- | Return a hash value for the argument, using the given salt. -- -- The general contract of hashWithSalt is: -- --
-- data Foo = Foo | Bar -- deriving (Enum) -- -- instance Hashable Foo where -- hashWithSalt = hashUsing fromEnum --hashUsing :: (Hashable b) => (a -> b) -> Int -> a -> Int -- | Compute a hash value for the content of this pointer. hashPtr :: Ptr a -> Int -> IO Int -- | Compute a hash value for the content of this pointer, using an initial -- salt. -- -- This function can for example be used to hash non-contiguous segments -- of memory as if they were one contiguous segment, by using the output -- of one hash as the salt for the next. hashPtrWithSalt :: Ptr a -> Int -> Int -> IO Int -- | Compute a hash value for the content of this ByteArray#, -- beginning at the specified offset, using specified number of bytes. hashByteArray :: ByteArray# -> Int -> Int -> Int -- | Compute a hash value for the content of this ByteArray#, using -- an initial salt. -- -- This function can for example be used to hash non-contiguous segments -- of memory as if they were one contiguous segment, by using the output -- of one hash as the salt for the next. hashByteArrayWithSalt :: ByteArray# -> Int -> Int -> Int -> Int