Îõ³h$"     ë(c) Milan Straka 2010 (c) Johan Tibell 2011 (c) Bryan O'Sullivan 2011, 2012 BSD-3-Clausejohan.tibell@gmail.com provisionalportable Trustworthy .39?ÁÂÇÉ×Ùk#hashable.A hashable value along with the result of the   function.hashable required that if two values are unequal according to the  method, then applying the  ù 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   must0 make use of the salt in its implementation.  may return negative  values. hashableLike  8, but no salt is used. The default implementation uses  ” with some default salt. Instances might want to implement this method to provide a more efficient implementation than the default implementation.hashableGeneric  .hashableGeneric .hashable Lift the  ' function through the type constructor. -hashWithSalt1 = liftHashWithSalt hashWithSalthashable Lift the  ' function through the type constructor. ;hashWithSalt2 = liftHashWithSalt2 hashWithSalt hashWithSalthashable Lift the  ê function halfway through the type constructor. This function makes a suitable default implementation of #, given that the type constructor t in question can unify with f a.hashable-Since we support a generic implementation of  þ we cannot also provide a default implementation for that method for the non-generic instance use case. Instead we provide defaultHashWith.hashableTransform a value into a  > value, then hash the transformed value using the given salt.öThis is a useful shorthand in cases where a type can easily be mapped to another type that is already an instance of   . Example: ðdata Foo = Foo | Bar deriving (Enum) instance Hashable Foo where hashWithSalt = hashUsing fromEnumhashable5Compute a hash value for the content of this pointer.hashableÍ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.hashable-Compute a hash value for the content of this  Æ, beginning at the specified offset, using specified number of bytes.hashable-Compute a hash value for the content of this  , 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.hashable#Wrap a hashable value, caching the   function result.hashableUnwrap hashed value.hashable cannot be !hashable cannot be "#hashableNote : Prior to hashable-1.3.0.06 the hash computation included the second argument of $" which wasn't consistent with its % instance.&hashable'hashableNote : prior to hashable-1.3.0.0, hash 0.0 /= hash (-0.0)The   of NaN is not well defined.(hashableNote : prior to hashable-1.3.0.0, hash 0.0 /= hash (-0.0)The   of NaN is not well defined.)hashable In general, hash (Compose x) àD hash x . However,  hashWithSalt, satisfies its variant of this equivalence.*hashable+hashable,hashable-hashable.hashable/hashable0hashable1hashable1Uses precomputed hash to detect inequality fasterhashableTransformation function.hashableSalt.hashableValue to transform.hashablepointer to the data to hashhashablelength, in byteshashable hash valuehashablepointer to the data to hashhashablelength, in byteshashablesalthashable hash valuehashable data to hashhashableoffset, in byteshashablelength, in byteshashable hash valuehashable data to hashhashableoffset, in byteshashablelength, in byteshashablesalthashable hash value   0(c) Bryan O'Sullivan 2012 BSD-3-Clausebos@serpentine.com provisional GHC >= 7.4 Trustworthy'(>?ÀÁÂÉÖ×Ù BSD-3-Clause provisional GHC >= 7.4Safe]      ë(c) Milan Straka 2010 (c) Johan Tibell 2011 (c) Bryan O'Sullivan 2011, 2012 BSD-3-Clausejohan.tibell@gmail.com provisionalportableSafe33  ë(c) Milan Straka 2010 (c) Johan Tibell 2011 (c) Bryan O'Sullivan 2011, 2012 BSD-3-Clausejohan.tibell@gmail.com provisionalportableSafe2      !"#$%#&'(#)*+,-+./0+12#$3456789:;<=>?À'hashable-1.3.3.0-L5rFh5cQc4V4Aq8JIz0jcQ Data.HashableData.Hashable.LiftedData.Hashable.GenericData.Hashable.ClassData.Hashable.Generic.InstancesHashed Hashable2liftHashWithSalt2 Hashable1liftHashWithSalt GHashable ghashWithSaltHashArgsOneZeroHashable hashWithSalthash HashArgs1 HashArgs0genericHashWithSaltgenericLiftHashWithSalt hashWithSalt1 hashWithSalt2defaultLiftHashWithSalt hashUsinghashPtrhashPtrWithSalt hashByteArrayhashByteArrayWithSalthashedunhashed mapHashedtraverseHashedghc-prim GHC.Classes== GHC.TypesIntdefaultHashWithSaltGHC.Prim ByteArray#baseGHC.BaseFunctorData.Traversable Traversable $fHashableArgData.SemigroupArgEq$fHashableFingerprint$fHashableDouble$fHashableFloat$fHashableCompose$fHashable1Option$fHashable1WrappedMonoid$fHashable1Last$fHashable1First$fHashable1Max$fHashable1Min$fHashable1NonEmpty $fEqHashed