This file is indexed.

/usr/share/doc/libghc-hashable-doc/html/Data-Hashable.html is in libghc-hashable-doc 1.2.4.0-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Data.Hashable</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Data-Hashable.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-Hashable.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">hashable-1.2.4.0: A class for types that can be converted to a hash value</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>(c) Milan Straka 2010
                (c) Johan Tibell 2011
                (c) Bryan O'Sullivan 2011, 2012</td></tr><tr><th>License</th><td>BSD-style</td></tr><tr><th>Maintainer</th><td>johan.tibell@gmail.com</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Data.Hashable</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Hashing and security</a></li><li><a href="#g:2">Computing hash values</a></li><li><a href="#g:3">Creating new instances</a><ul><li><a href="#g:4">Generic instances</a><ul><li><a href="#g:5">Understanding a compiler error</a></li></ul></li><li><a href="#g:6">Writing instances by hand</a><ul><li><a href="#g:7">Hashing contructors with multiple fields</a></li><li><a href="#g:8">Hashing types with multiple constructors</a></li></ul></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module defines a class, <code><a href="Data-Hashable.html#t:Hashable">Hashable</a></code>, 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.</p><p>The easiest way to get started is to use the <code><a href="Data-Hashable.html#v:hash">hash</a></code> function. Here
 is an example session with <code>ghci</code>.</p><pre>ghci&gt; import Data.Hashable
ghci&gt; hash &quot;foo&quot;
60853164</pre></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="#t:Hashable">Hashable</a> a <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:hashUsing">hashUsing</a> :: <a href="Data-Hashable.html#t:Hashable">Hashable</a> b =&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:hashPtr">hashPtr</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:hashPtrWithSalt">hashPtrWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:hashByteArray">hashByteArray</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/ghc-prim-0.5.0.0/GHC-Prim.html#t:ByteArray-35-">ByteArray#</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:hashByteArrayWithSalt">hashByteArrayWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/ghc-prim-0.5.0.0/GHC-Prim.html#t:ByteArray-35-">ByteArray#</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></li></ul></div><div id="interface"><h1 id="g:1">Hashing and security</h1><div class="doc"><p><a id="security"></a></p><p>Applications that use hash-based data structures to store input
 from untrusted users can be susceptible to &quot;hash DoS&quot;, a class of
 denial-of-service attack that uses deliberately chosen colliding
 inputs to force an application into unexpectedly behaving with
 quadratic time complexity.</p><p>At this time, the string hashing functions used in this library are
 susceptible to such attacks and users are recommended to either use
 a <code><a href="Data.html#v:Map">Map</a></code> to store keys derived from untrusted input or to use a
 hash function (e.g. SipHash) that's resistant to such attacks. A
 future version of this library might ship with such hash functions.</p></div><h1 id="g:2">Computing hash values</h1><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Hashable" class="def">Hashable</a> a <span class="keyword">where</span> <a href="src/Data-Hashable-Class.html#Hashable" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></p><div class="doc"><p>The class of types that can be converted to a hash value.</p><p>Minimal implementation: <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code>.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:hashWithSalt" class="def">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <span class="fixity">infixl 0</span><span class="rightedge"></span> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><div class="doc"><p>Return a hash value for the argument, using the given salt.</p><p>The general contract of <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code> is:</p><ul><li>If two values are equal according to the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Eq.html#v:-61--61-">==</a></code> method, then
    applying the <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code> method on each of the two values
    <em>must</em> produce the same integer result if the same salt is
    used in each case.</li><li>It is <em>not</em> required that if two values are unequal
    according to the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Eq.html#v:-61--61-">==</a></code> method, then applying the
    <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code> 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.</li><li>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 <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code> <em>must</em> make use of the salt in
    its implementation.</li></ul></div><p class="src"><a id="v:hash" class="def">hash</a> :: a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code>, but no salt is used. The default
 implementation uses <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code> with some default salt.
 Instances might want to implement this method to provide a more
 efficient implementation than the default implementation.</p></div><p class="src"><a id="v:hashWithSalt" class="def">hashWithSalt</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Generics.html#t:Generic">Generic</a> a, GHashable (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Generics.html#t:Rep">Rep</a> a)) =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <span class="fixity">infixl 0</span><span class="rightedge"></span> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><div class="doc"><p>Return a hash value for the argument, using the given salt.</p><p>The general contract of <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code> is:</p><ul><li>If two values are equal according to the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Eq.html#v:-61--61-">==</a></code> method, then
    applying the <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code> method on each of the two values
    <em>must</em> produce the same integer result if the same salt is
    used in each case.</li><li>It is <em>not</em> required that if two values are unequal
    according to the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Eq.html#v:-61--61-">==</a></code> method, then applying the
    <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code> 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.</li><li>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 <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code> <em>must</em> make use of the salt in
    its implementation.</li></ul></div></div><div class="subs instances"><p id="control.i:Hashable" class="caption collapser" onclick="toggleSection('i:Hashable')">Instances</p><div id="section.i:Hashable" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:1" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:1')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a></span> <a href="src/Data-Hashable-Class.html#line-278" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:2" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:2')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Char.html#t:Char">Char</a></span> <a href="src/Data-Hashable-Class.html#line-286" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:3" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:3')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Double">Double</a></span> <a href="src/Data-Hashable-Class.html#line-373" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Double">Double</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:4" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:4')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Float">Float</a></span> <a href="src/Data-Hashable-Class.html#line-364" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Float">Float</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Float">Float</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:5" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:5')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></span> <a href="src/Data-Hashable-Class.html#line-221" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:6" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:6')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int8">Int8</a></span> <a href="src/Data-Hashable-Class.html#line-225" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int8">Int8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int8">Int8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:7" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:7')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int16">Int16</a></span> <a href="src/Data-Hashable-Class.html#line-229" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int16">Int16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int16">Int16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:8" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:8')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int32">Int32</a></span> <a href="src/Data-Hashable-Class.html#line-233" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int32">Int32</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int32">Int32</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:9" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:9')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int64">Int64</a></span> <a href="src/Data-Hashable-Class.html#line-237" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int64">Int64</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int64">Int64</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:10" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:10')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a></span> <a href="src/Data-Hashable-Class.html#line-314" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:11" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:11')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ord.html#t:Ordering">Ordering</a></span> <a href="src/Data-Hashable-Class.html#line-282" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ord.html#t:Ordering">Ordering</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ord.html#t:Ordering">Ordering</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:12" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:12')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word">Word</a></span> <a href="src/Data-Hashable-Class.html#line-248" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word">Word</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word">Word</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:13" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:13')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a></span> <a href="src/Data-Hashable-Class.html#line-252" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:14" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:14')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a></span> <a href="src/Data-Hashable-Class.html#line-256" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:15" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:15')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word32">Word32</a></span> <a href="src/Data-Hashable-Class.html#line-260" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word32">Word32</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word32">Word32</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:16" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:16')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word64">Word64</a></span> <a href="src/Data-Hashable-Class.html#line-264" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word64">Word64</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word64">Word64</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:17" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:17')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Typeable-Internal.html#t:TypeRep">TypeRep</a></span> <a href="src/Data-Hashable-Class.html#line-511" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Typeable-Internal.html#t:TypeRep">TypeRep</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Typeable-Internal.html#t:TypeRep">TypeRep</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:18" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:18')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> ()</span> <a href="src/Data-Hashable-Class.html#line-274" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; () -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: () -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:19" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:19')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/integer-gmp-1.0.0.1/GHC-Integer-GMP-Internals.html#t:BigNat">BigNat</a></span> <a href="src/Data-Hashable-Class.html#line-291" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:19" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/integer-gmp-1.0.0.1/GHC-Integer-GMP-Internals.html#t:BigNat">BigNat</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/integer-gmp-1.0.0.1/GHC-Integer-GMP-Internals.html#t:BigNat">BigNat</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:20" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:20')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Numeric-Natural.html#t:Natural">Natural</a></span> <a href="src/Data-Hashable-Class.html#line-300" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:20" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Numeric-Natural.html#t:Natural">Natural</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Numeric-Natural.html#t:Natural">Natural</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:21" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:21')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Void.html#t:Void">Void</a></span> <a href="src/Data-Hashable-Class.html#line-517" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:21" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Void.html#t:Void">Void</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Void.html#t:Void">Void</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:22" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:22')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Version.html#t:Version">Version</a></span> <a href="src/Data-Hashable-Class.html#line-581" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:22" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Version.html#t:Version">Version</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Version.html#t:Version">Version</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:23" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:23')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Unique.html#t:Unique">Unique</a></span> <a href="src/Data-Hashable-Class.html#line-577" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:23" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Unique.html#t:Unique">Unique</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Unique.html#t:Unique">Unique</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:24" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:24')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Concurrent.html#t:ThreadId">ThreadId</a></span> <a href="src/Data-Hashable-Class.html#line-492" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:24" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Concurrent.html#t:ThreadId">ThreadId</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Concurrent.html#t:ThreadId">ThreadId</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:25" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:25')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a></span> <a href="src/Data-Hashable-Class.html#line-468" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:25" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Short.html#t:ShortByteString">ShortByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:26" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:26')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></span> <a href="src/Data-Hashable-Class.html#line-464" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:26" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:27" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:27')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a></span> <a href="src/Data-Hashable-Class.html#line-459" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:27" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:28" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:28')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a></span> <a href="src/Data-Hashable-Class.html#line-482" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:28" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:29" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:29')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text.html#t:Text">Text</a></span> <a href="src/Data-Hashable-Class.html#line-477" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:29" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:30" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:30')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> a =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> [a]</span> <a href="src/Data-Hashable-Class.html#line-452" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:30" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; [a] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: [a] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:31" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:31')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> a =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</span> <a href="src/Data-Hashable-Class.html#line-389" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:31" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:32" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:32')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> a =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ratio.html#t:Ratio">Ratio</a> a)</span> <a href="src/Data-Hashable-Class.html#line-356" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:32" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ratio.html#t:Ratio">Ratio</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ratio.html#t:Ratio">Ratio</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:33" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:33')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> a =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Min">Min</a> a)</span> <a href="src/Data-Hashable-Class.html#line-595" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:33" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Min">Min</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Min">Min</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:34" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:34')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> a =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Max">Max</a> a)</span> <a href="src/Data-Hashable-Class.html#line-598" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:34" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Max">Max</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Max">Max</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:35" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:35')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> a =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:First">First</a> a)</span> <a href="src/Data-Hashable-Class.html#line-604" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:35" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:First">First</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:First">First</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:36" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:36')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> a =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Last">Last</a> a)</span> <a href="src/Data-Hashable-Class.html#line-607" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:36" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Last">Last</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Last">Last</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:37" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:37')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> a =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> a)</span> <a href="src/Data-Hashable-Class.html#line-610" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:37" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:WrappedMonoid">WrappedMonoid</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:38" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:38')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> a =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Option">Option</a> a)</span> <a href="src/Data-Hashable-Class.html#line-613" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:38" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Option">Option</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Option">Option</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:39" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:39')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> a =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a)</span> <a href="src/Data-Hashable-Class.html#line-592" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:39" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:40" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:40')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Fixed.html#t:Fixed">Fixed</a> a)</span> <a href="src/Data-Hashable-Class.html#line-586" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:40" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Fixed.html#t:Fixed">Fixed</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Fixed.html#t:Fixed">Fixed</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:41" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:41')"></span> <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-Mem-StableName.html#t:StableName">StableName</a> a)</span> <a href="src/Data-Hashable-Class.html#line-445" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:41" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-Mem-StableName.html#t:StableName">StableName</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-Mem-StableName.html#t:StableName">StableName</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:42" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:42')"></span> (<a href="Data-Hashable.html#t:Hashable">Hashable</a> a, <a href="Data-Hashable.html#t:Hashable">Hashable</a> b) =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> a b)</span> <a href="src/Data-Hashable-Class.html#line-395" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:42" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> a b -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> a b -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:43" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:43')"></span> (<a href="Data-Hashable.html#t:Hashable">Hashable</a> a1, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a2) =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (a1, a2)</span> <a href="src/Data-Hashable-Class.html#line-401" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:43" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; (a1, a2) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: (a1, a2) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:44" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:44')"></span> (<a href="Data-Hashable.html#t:Hashable">Hashable</a> a, <a href="Data-Hashable.html#t:Hashable">Hashable</a> b) =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Arg">Arg</a> a b)</span> <a href="src/Data-Hashable-Class.html#line-601" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:44" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Arg">Arg</a> a b -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Semigroup.html#t:Arg">Arg</a> a b -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:45" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:45')"></span> (<a href="Data-Hashable.html#t:Hashable">Hashable</a> a1, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a2, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a3) =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (a1, a2, a3)</span> <a href="src/Data-Hashable-Class.html#line-405" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:45" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; (a1, a2, a3) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: (a1, a2, a3) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:46" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:46')"></span> (<a href="Data-Hashable.html#t:Hashable">Hashable</a> a1, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a2, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a3, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a4) =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (a1, a2, a3, a4)</span> <a href="src/Data-Hashable-Class.html#line-410" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:46" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; (a1, a2, a3, a4) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: (a1, a2, a3, a4) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:47" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:47')"></span> (<a href="Data-Hashable.html#t:Hashable">Hashable</a> a1, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a2, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a3, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a4, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a5) =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (a1, a2, a3, a4, a5)</span> <a href="src/Data-Hashable-Class.html#line-417" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:47" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; (a1, a2, a3, a4, a5) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: (a1, a2, a3, a4, a5) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:48" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:48')"></span> (<a href="Data-Hashable.html#t:Hashable">Hashable</a> a1, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a2, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a3, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a4, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a5, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a6) =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (a1, a2, a3, a4, a5, a6)</span> <a href="src/Data-Hashable-Class.html#line-426" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:48" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; (a1, a2, a3, a4, a5, a6) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: (a1, a2, a3, a4, a5, a6) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Hashable:Hashable:49" class="instance expander" onclick="toggleSection('i:ic:Hashable:Hashable:49')"></span> (<a href="Data-Hashable.html#t:Hashable">Hashable</a> a1, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a2, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a3, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a4, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a5, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a6, <a href="Data-Hashable.html#t:Hashable">Hashable</a> a7) =&gt; <a href="Data-Hashable.html#t:Hashable">Hashable</a> (a1, a2, a3, a4, a5, a6, a7)</span> <a href="src/Data-Hashable-Class.html#line-435" class="link">Source</a> <a href="#t:Hashable" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Hashable:Hashable:49" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hashWithSalt">hashWithSalt</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; (a1, a2, a3, a4, a5, a6, a7) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hashWithSalt" class="link">Source</a> <a href="#v:hashWithSalt" class="selflink">#</a></p><p class="src"><a href="#v:hash">hash</a> :: (a1, a2, a3, a4, a5, a6, a7) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Hashable-Class.html#hash" class="link">Source</a> <a href="#v:hash" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h1 id="g:3">Creating new instances</h1><div class="doc"><p>There are two ways to create new instances: by deriving
 instances automatically using GHC's generic programming
 support or by writing instances manually.</p></div><h2 id="g:4">Generic instances</h2><div class="doc"><p>Beginning with GHC 7.2, the recommended way to make instances of
 <code><a href="Data-Hashable.html#t:Hashable">Hashable</a></code> for most types is to use the compiler's support for
 automatically generating default instances.</p><pre>{-# LANGUAGE DeriveGeneric #-}

import GHC.Generics (Generic)
import Data.Hashable

data Foo a = Foo a String
             deriving (Eq, Generic)

instance Hashable a =&gt; Hashable (Foo a)

data Colour = Red | Green | Blue
              deriving Generic

instance Hashable Colour</pre><p>If you omit a body for the instance declaration, GHC will generate
 a default instance that correctly and efficiently hashes every
 constructor and parameter.</p></div><h3 id="g:5">Understanding a compiler error</h3><div class="doc"><p>Suppose you intend to use the generic machinery to automatically
 generate a <code><a href="Data-Hashable.html#t:Hashable">Hashable</a></code> instance.</p><pre>data Oops = Oops
     -- forgot to add &quot;deriving Generic&quot; here!

instance Hashable Oops</pre><p>And imagine that, as in the example above, you forget to add a
 &quot;<code>deriving <code>Generic</code></code>&quot; clause to your data type. At compile time,
 you will get an error message from GHC that begins roughly as
 follows:</p><pre>No instance for (GHashable (Rep Oops))</pre><p>This error can be confusing, as <code>GHashable</code> is not exported (it is
 an internal typeclass used by this library's generics machinery).
 The correct fix is simply to add the missing &quot;<code>deriving
 <code>Generic</code></code>&quot;.</p></div><h2 id="g:6">Writing instances by hand</h2><div class="doc"><p>To maintain high quality hashes, new <code><a href="Data-Hashable.html#t:Hashable">Hashable</a></code> instances should be
 built using existing <code><a href="Data-Hashable.html#t:Hashable">Hashable</a></code> instances, combinators, and hash
 functions.</p><p>The functions below can be used when creating new instances of
 <code><a href="Data-Hashable.html#t:Hashable">Hashable</a></code>.  For example, for many string-like types the
 <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code> method can be defined in terms of either
 <code><a href="Data-Hashable.html#v:hashPtrWithSalt">hashPtrWithSalt</a></code> or <code><a href="Data-Hashable.html#v:hashByteArrayWithSalt">hashByteArrayWithSalt</a></code>.  Here's how you could
 implement an instance for the <code><a href="B.html#v:ByteString">ByteString</a></code> data type, from the
 <code>bytestring</code> package:</p><pre>import qualified Data.ByteString as B
import qualified Data.ByteString.Internal as B
import qualified Data.ByteString.Unsafe as B
import Data.Hashable
import Foreign.Ptr (castPtr)

instance Hashable B.ByteString where
    hashWithSalt salt bs = B.inlinePerformIO $
                           B.unsafeUseAsCStringLen bs $ \(p, len) -&gt;
                           hashPtrWithSalt p (fromIntegral len) salt</pre></div><h3 id="g:7">Hashing contructors with multiple fields</h3><div class="doc"><p>Hash constructors with multiple fields by chaining <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code>:</p><pre>data Date = Date Int Int Int

instance Hashable Date where
    hashWithSalt s (Date yr mo dy) =
        s `hashWithSalt`
        yr `hashWithSalt`
        mo `hashWithSalt` dy</pre><p>If you need to chain hashes together, use <code><a href="Data-Hashable.html#v:hashWithSalt">hashWithSalt</a></code> and follow
 this recipe:</p><pre>combineTwo h1 h2 = h1 `hashWithSalt` h2</pre></div><h3 id="g:8">Hashing types with multiple constructors</h3><div class="doc"><p>For a type with several value constructors, there are a few
 possible approaches to writing a <code><a href="Data-Hashable.html#t:Hashable">Hashable</a></code> instance.</p><p>If the type is an instance of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Enum">Enum</a></code>, the easiest path is to
 convert it to an <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></code>, and use the existing <code><a href="Data-Hashable.html#t:Hashable">Hashable</a></code> instance
 for <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></code>.</p><pre>data Color = Red | Green | Blue
             deriving Enum

instance Hashable Color where
    hashWithSalt = hashUsing fromEnum</pre><p>If the type's constructors accept parameters, it is important to
 distinguish the constructors. To distinguish the constructors, add
 a different integer to the hash computation of each constructor:</p><pre>data Time = Days Int
          | Weeks Int
          | Months Int

instance Hashable Time where
    hashWithSalt s (Days n)   = s `hashWithSalt`
                                (0::Int) `hashWithSalt` n
    hashWithSalt s (Weeks n)  = s `hashWithSalt`
                                (1::Int) `hashWithSalt` n
    hashWithSalt s (Months n) = s `hashWithSalt`
                                (2::Int) `hashWithSalt` n</pre></div><div class="top"><p class="src"><a id="v:hashUsing" class="def">hashUsing</a> <a href="src/Data-Hashable-Class.html#hashUsing" class="link">Source</a> <a href="#v:hashUsing" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Data-Hashable.html#t:Hashable">Hashable</a> b</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; (a -&gt; b)</td><td class="doc"><p>Transformation function.</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>Salt.</p></td></tr><tr><td class="src">-&gt; a</td><td class="doc"><p>Value to transform.</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Transform a value into a <code><a href="Data-Hashable.html#t:Hashable">Hashable</a></code> value, then hash the
 transformed value using the given salt.</p><p>This is a useful shorthand in cases where a type can easily be
 mapped to another type that is already an instance of <code><a href="Data-Hashable.html#t:Hashable">Hashable</a></code>.
 Example:</p><pre>data Foo = Foo | Bar
         deriving (Enum)

instance Hashable Foo where
    hashWithSalt = hashUsing fromEnum</pre></div></div><div class="top"><p class="src"><a id="v:hashPtr" class="def">hashPtr</a> <a href="src/Data-Hashable-Class.html#hashPtr" class="link">Source</a> <a href="#v:hashPtr" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> a</td><td class="doc"><p>pointer to the data to hash</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>length, in bytes</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>hash value</p></td></tr></table></div><div class="doc"><p>Compute a hash value for the content of this pointer.</p></div></div><div class="top"><p class="src"><a id="v:hashPtrWithSalt" class="def">hashPtrWithSalt</a> <a href="src/Data-Hashable-Class.html#hashPtrWithSalt" class="link">Source</a> <a href="#v:hashPtrWithSalt" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> a</td><td class="doc"><p>pointer to the data to hash</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>length, in bytes</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>salt</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>hash value</p></td></tr></table></div><div class="doc"><p>Compute a hash value for the content of this pointer, using an
 initial salt.</p><p>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.</p></div></div><div class="top"><p class="src"><a id="v:hashByteArray" class="def">hashByteArray</a> <a href="src/Data-Hashable-Class.html#hashByteArray" class="link">Source</a> <a href="#v:hashByteArray" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/ghc-prim-0.5.0.0/GHC-Prim.html#t:ByteArray-35-">ByteArray#</a></td><td class="doc"><p>data to hash</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>offset, in bytes</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>length, in bytes</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>hash value</p></td></tr></table></div><div class="doc"><p>Compute a hash value for the content of this <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/ghc-prim-0.5.0.0/GHC-Prim.html#t:ByteArray-35-">ByteArray#</a></code>,
 beginning at the specified offset, using specified number of bytes.</p></div></div><div class="top"><p class="src"><a id="v:hashByteArrayWithSalt" class="def">hashByteArrayWithSalt</a> <a href="src/Data-Hashable-Class.html#hashByteArrayWithSalt" class="link">Source</a> <a href="#v:hashByteArrayWithSalt" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/ghc-prim-0.5.0.0/GHC-Prim.html#t:ByteArray-35-">ByteArray#</a></td><td class="doc"><p>data to hash</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>offset, in bytes</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>length, in bytes</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>salt</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><p>hash value</p></td></tr></table></div><div class="doc"><p>Compute a hash value for the content of this <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/ghc-prim-0.5.0.0/GHC-Prim.html#t:ByteArray-35-">ByteArray#</a></code>, using
 an initial salt.</p><p>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.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.2</p></div></body></html>