<html xmlns="http://www.w3.org/1999/xhtml" ><head ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title >Hash</title ><link href="#" rel="stylesheet" type="text/css" title="NewOcean" /><link rel="stylesheet" type="text/css" href="#" /><link rel="stylesheet" type="text/css" href="#" /><script src="haddock-bundle.min.js" async="async" type="text/javascript" ></script ><script type="text/x-mathjax-config" >MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });</script ><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript" ></script ></head ><body ><div id="package-header" ><span class="caption empty" > </span ><ul class="links" id="page-menu" ><li ><a href="#" >Contents</a ></li ><li ><a href="#" >Index</a ></li ></ul ></div ><div id="content" ><div id="module-header" ><table class="info" ><tr ><th >Safe Haskell</th ><td >Safe-Inferred</td ></tr ></table ><p class="caption" >Hash</p ></div ><div id="table-of-contents" ><div id="contents-list" ><p class="caption" onclick="window.scrollTo(0,0)" >Contents</p ><ul ><li ><a href="#" >The <code >HashTable</code > type</a ><ul ><li ><a href="#" >Operations on <code >HashTable</code >s</a ></li ></ul ></li ><li ><a href="#" >The <code >Hash</code > class</a ></li ></ul ></div ></div ><div id="description" ><p class="caption" >Description</p ><div class="doc" ><p >Implementation of fixed-size hash tables, with a type class for constructing hash values for structured types.</p ></div ></div ><div id="synopsis" ><details id="syn" ><summary >Synopsis</summary ><ul class="details-toggle" data-details-id="syn" ><li class="src short" ><span class="keyword" >data</span > <a href="#" >HashTable</a > key val</li ><li class="src short" ><a href="#" >new</a > :: (<a href="#" title="Data.Eq" >Eq</a > key, <a href="#" title="Hash" >Hash</a > key) => <a href="#" title="Data.Int" >Int</a > -> <a href="#" title="System.IO" >IO</a > (<a href="#" title="Hash" >HashTable</a > key val)</li ><li class="src short" ><a href="#" >insert</a > :: (<a href="#" title="Data.Eq" >Eq</a > key, <a href="#" title="Hash" >Hash</a > key) => key -> val -> <a href="#" title="System.IO" >IO</a > ()</li ><li class="src short" ><a href="#" >lookup</a > :: <a href="#" title="Hash" >Hash</a > key => key -> <a href="#" title="System.IO" >IO</a > (<a href="#" title="Data.Maybe" >Maybe</a > val)</li ><li class="src short" ><span class="keyword" >class</span > <a href="#" >Hash</a > a <span class="keyword" >where</span ><ul class="subs" ><li ><a href="#" >hash</a > :: a -> <a href="#" title="Data.Int" >Int</a ></li ></ul ></li ></ul ></details ></div ><div id="interface" ><a href="#" id="g:1" ><h1 >The <code >HashTable</code > type</h1 ></a ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a id="t:HashTable" class="def" >HashTable</a > key val <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >A hash table with keys of type <code >key</code > and values of type <code >val</code >. The type <code >key</code > should be an instance of <code ><a href="#" title="Data.Eq" >Eq</a ></code >.</p ></div ></div ><a href="#" id="g:2" ><h2 >Operations on <code >HashTable</code >s</h2 ></a ><div class="top" ><p class="src" ><a id="v:new" class="def" >new</a > :: (<a href="#" title="Data.Eq" >Eq</a > key, <a href="#" title="Hash" >Hash</a > key) => <a href="#" title="Data.Int" >Int</a > -> <a href="#" title="System.IO" >IO</a > (<a href="#" title="Hash" >HashTable</a > key val) <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >Builds a new hash table with a given size</p ></div ></div ><div class="top" ><p class="src" ><a id="v:insert" class="def" >insert</a > :: (<a href="#" title="Data.Eq" >Eq</a > key, <a href="#" title="Hash" >Hash</a > key) => key -> val -> <a href="#" title="System.IO" >IO</a > () <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >Inserts a new element into the hash table</p ></div ></div ><div class="top" ><p class="src" ><a id="v:lookup" class="def" >lookup</a > :: <a href="#" title="Hash" >Hash</a > key => key -> <a href="#" title="System.IO" >IO</a > (<a href="#" title="Data.Maybe" >Maybe</a > val) <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >Looks up a key in the hash table, returns <code ><code ><a href="#" title="Data.Maybe" >Just</a ></code > val</code > if the key was found, or <code ><a href="#" title="Data.Maybe" >Nothing</a ></code > otherwise.</p ></div ></div ><a href="#" id="g:3" ><h1 >The <code >Hash</code > class</h1 ></a ><div class="top" ><p class="src" ><span class="keyword" >class</span > <a id="t:Hash" class="def" >Hash</a > a <span class="keyword" >where</span > <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >A class of types which can be hashed.</p ></div ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" ><a id="v:hash" class="def" >hash</a > :: a -> <a href="#" title="Data.Int" >Int</a > <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >hashes the value of type <code >a</code > into an <code ><a href="#" title="Data.Int" >Int</a ></code ></p ></div ></div ><div class="subs instances" ><h4 class="instances details-toggle-control details-toggle" data-details-id="i:Hash" >Instances</h4 ><details id="i:Hash" open="open" ><summary class="hide-when-js-enabled" >Instances details</summary ><table ><tr ><td class="src clearfix" ><span class="inst-left" ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Hash:Hash:1" ></span > <a href="#" title="Hash" >Hash</a > <a href="#" title="Prelude" >Float</a ></span > <a href="#" class="selflink" >#</a ></td ><td class="doc empty" > </td ></tr ><tr ><td colspan="2" ><details id="i:ic:Hash:Hash:1" ><summary class="hide-when-js-enabled" >Instance details</summary ><p >Defined in <a href="#" >Hash</a ></p > <div class="subs methods" ><p class="caption" >Methods</p ><p class="src" ><a href="#" >hash</a > :: <a href="#" title="Prelude" >Float</a > -> <a href="#" title="Data.Int" >Int</a > <a href="#" class="selflink" >#</a ></p ></div ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Hash:Hash:2" ></span > <a href="#" title="Hash" >Hash</a > <a href="#" title="Data.Int" >Int</a ></span > <a href="#" class="selflink" >#</a ></td ><td class="doc empty" > </td ></tr ><tr ><td colspan="2" ><details id="i:ic:Hash:Hash:2" ><summary class="hide-when-js-enabled" >Instance details</summary ><p >Defined in <a href="#" >Hash</a ></p > <div class="subs methods" ><p class="caption" >Methods</p ><p class="src" ><a href="#" >hash</a > :: <a href="#" title="Data.Int" >Int</a > -> <a href="#" title="Data.Int" >Int</a > <a href="#" class="selflink" >#</a ></p ></div ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Hash:Hash:3" ></span > (<a href="#" title="Hash" >Hash</a > a, <a href="#" title="Hash" >Hash</a > b) => <a href="#" title="Hash" >Hash</a > (a, b)</span > <a href="#" class="selflink" >#</a ></td ><td class="doc empty" > </td ></tr ><tr ><td colspan="2" ><details id="i:ic:Hash:Hash:3" ><summary class="hide-when-js-enabled" >Instance details</summary ><p >Defined in <a href="#" >Hash</a ></p > <div class="subs methods" ><p class="caption" >Methods</p ><p class="src" ><a href="#" >hash</a > :: (a, b) -> <a href="#" title="Data.Int" >Int</a > <a href="#" class="selflink" >#</a ></p ></div ></details ></td ></tr ></table ></details ></div ></div ></div ></div ></body ></html >