h$'c$2      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO  Safe-Inferred  hashtables#A typeclass for hash tables in the P monad. The operations on these hash tables are typically both key- and value-strict. hashtables)Creates a new, default-sized hash table. O(1). hashtables'Creates a new hash table sized to hold n elements. O(n). hashtables Generalized update. Given a key k, and a user function f, calls:6`f Nothing` if the key did not exist in the hash table`f (Just v)` otherwiseIf the user function returns  (Nothing, _), then the value is deleted from the hash table. Otherwise the mapping for k2 is inserted or replaced with the provided value.1Returns the second part of the tuple returned by f. hashtablesAs >, except that the action can perform additional side effects. hashtablesInserts a key/value mapping into a hash table, replacing any existing mapping for that key.O(n) worst case, O(1) amortized. hashtables/Deletes a key-value mapping from a hash table. O(n) worst case, O(1) amortized. hashtables.Looks up a key-value mapping in a hash table. O(n) worst case, (O(1) for cuckoo hash), O(1) amortized. hashtablesA strict fold over the key-value records of a hash table in the P monad. O(n).  hashtablesA side-effecting map over the key-value records of a hash table. O(n).  hashtablesLooks up the index of a key-value mapping in a hash table suitable for passing to  .  hashtablesReturns the next key-value mapping stored at the given index or at a greater index. The index, key, and value of the next record are returned.  hashtablesComputes the overhead (in words) per key-value mapping. Used for debugging, etc; time complexity depends on the underlying hash table implementation. O(n).  hashtables4Create a hash table from a list of key-value pairs. O(n). hashtablesCreate a hash table from a list of key-value pairs, with a size hint. O(n). hashtables7Given a hash table, produce a list of key-value pairs. O(n).        None QRSTNone B UVWXYZ[\]^_None o `abcdefgh None i hashtables default value hashtablesnew size hashtablesnumber of elements to copy hashtables old arrayjklmnoipqrstuvwxyz{|} None ~ hashtablesWhat you have to mask an integer index by to tell if it's cacheline-aligned~ None  None hashtables(Returns 0 if x is positive, -1 otherwise hashtablesAbs of an integer, branchless hashtables Returns 0xfff..fff (aka -1) if a == b, 0 otherwise. hashtables3Returns 0xfff..fff (aka -1) if a == b, 0 otherwise. hashtablesSearch through a mutable vector for a given int value, cache-line aligned. If the start index is cache-line aligned, and there is more than a cache-line's room between the start index and the end of the vector, we will search the cache-line all at once using an efficient branchless bit-twiddling technique. Otherwise, we will use a typical loop. hashtablesSearch through a mutable vector for one of two given int values, cache-line aligned. If the start index is cache-line aligned, and there is more than a cache-line's room between the start index and the end of the vector, we will search the cache-line all at once using an efficient branchless bit-twiddling technique. Otherwise, we will use a typical loop. hashtablesSearch through a mutable vector for one of three given int values, cache-line aligned. If the start index is cache-line aligned, and there is more than a cache-line's room between the start index and the end of the vector, we will search the cache-line all at once using an efficient branchless bit-twiddling technique. Otherwise, we will use a typical loop. hashtablesvector to search hashtables start index hashtablesvalue to search for hashtables7dest index where it can be found, or "-1" if not found hashtablesvector to search hashtables start index hashtablesvalue to search for hashtablesvalue 2 to search for hashtables7dest index where it can be found, or "-1" if not found hashtablesvector to search hashtables start index hashtablesvalue to search for hashtablesvalue 2 to search for hashtablesvalue 3 to search for hashtables7dest index where it can be found, or "-1" if not foundNone  hashtables3An open addressing hash table using linear probing. hashtables,See the documentation for this function in  . hashtables,See the documentation for this function in . hashtables?Returns the number of mappings currently stored in this table. O(1) hashtables,See the documentation for this function in . hashtables,See the documentation for this function in . hashtables,See the documentation for this function in . hashtables,See the documentation for this function in . hashtables,See the documentation for this function in . hashtables,See the documentation for this function in . hashtables,See the documentation for this function in . hashtables,See the documentation for this function in .  Nonek " hashtablesA cuckoo hash table.# hashtables,See the documentation for this function in  .$ hashtables,See the documentation for this function in .% hashtables,See the documentation for this function in .( hashtables,See the documentation for this function in .) hashtables,See the documentation for this function in .* hashtables,See the documentation for this function in .+ hashtables,See the documentation for this function in ., hashtables)Find index of given key in the hashtable.- hashtablesFind the next entry in the hashtable starting at the given index. "#$%&'()*+,- "#$()%&'+*,-None 0 hashtablesA linear hash table.1 hashtablesSee the documentation for this function in "Data.HashTable.Class#v:new".2 hashtablesSee the documentation for this function in "Data.HashTable.Class#v:newSized".3 hashtablesSee the documentation for this function in "Data.HashTable.Class#v:delete".4 hashtablesSee the documentation for this function in "Data.HashTable.Class#v:lookup".5 hashtablesSee the documentation for this function in "Data.HashTable.Class#v:insert".8 hashtablesSee the documentation for this function in "Data.HashTable.Class#v:mapM_".9 hashtablesSee the documentation for this function in "Data.HashTable.Class#v:foldM".: hashtablesSee the documentation for this function in "Data.HashTable.Class#v:computeOverhead". 0123456789: 0123456789:None$= hashtables/A type alias for our hash tables, which run in ST", to set the state token type to   (aka  RealWorld) so that we can use them in .> hashtables,A type alias for the linear hash table. See Data.HashTable.ST.Linear.? hashtables,A type alias for the cuckoo hash table. See Data.HashTable.ST.Cuckoo.@ hashtablesA type alias for a basic open addressing hash table using linear probing. See Data.HashTable.ST.Basic.A hashtables+See the documentation for this function in  .B hashtables,See the documentation for this function in .C hashtables+See the documentation for this function in .D hashtables+See the documentation for this function in .E hashtables+See the documentation for this function in .F hashtables+See the documentation for this function in .G hashtables+See the documentation for this function in .H hashtables+See the documentation for this function in .I hashtables+See the documentation for this function in .J hashtables,See the documentation for this function in .K hashtables,See the documentation for this function in .L hashtables+See the documentation for this function in .M hashtables+See the documentation for this function in .N hashtables+See the documentation for this function in .O hashtables,See the documentation for this function in .=>?@ABCDEFGHIJKLMNO@?>=ABCDEIHJKLNMOFG   !"#  $%&' ()*+,-./01234567/0189:;<=>?@AB C D E F G H I J K L    M        N)OP Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q,rstuv%hashtables-1.3-FQt2LQmG25j3jo2wHqGBqcData.HashTable.ClassData.HashTable.ST.BasicData.HashTable.ST.CuckooData.HashTable.ST.LinearData.HashTable.IOData.HashTable.Internal.Array Data.HashTable.Internal.IntArray$Data.HashTable.Internal.UnsafeTricks%Data.HashTable.Internal.Linear.BucketData.HashTable.Internal.Utils2Data.HashTable.Internal.CheapPseudoRandomBitStream!Data.HashTable.Internal.CacheLinenewnewSizeddeletelookupinsertmutatemutateSTfoldMmapM_computeOverhead lookupIndex nextByIndexfromListfromListWithSizeHinttoList HashTablesize$fShowHashTable$fHashTableHashTable $fMonoidSlot$fSemigroupSlot$fShowSlotFindResponse $fShowSlot IOHashTableLinearHashTableCuckooHashTableBasicHashTablemutateIObaseGHC.STST(primitive-0.7.3.0-GaTKHWlkxwrBb07qgsmPECData.Primitive.Array MutableArraynewArray readArray writeArrayElemIntArrayprimWordToElem elemToInt elemToInt#elemMasklengthtoPtrKey emptyRecord deletedRecord keyIsEmpty keyIsDeletedtoKeyfromKeymakeEmptyVectorwriteDeletedElement expandArrayBucketbucketSplitSizenewBucketArraynelemsAndOverheadInWords emptyWithSize newBucketSizeexpandBucketArray growBucketTosnocelemAtcacheLineIntMaskGHC.IO unsafeIOToSTwordSize cacheLineSizenumElemsInCacheLinecacheLineIntBits whichBucket nextBestPrimebumpSizeshiftLshiftRLiShiftLiShiftRLnextHighestPowerOf2log2highestBitMask forceSameType BitStream newBitStream getNextBitgetNBitssign#bl_abs#mask#maskcacheLineSearchcacheLineSearch2cacheLineSearch3 prefetchRead prefetchWriteforwardSearch2forwardSearch3advanceByCacheLineSizeisCacheLineAlignedmaskw#Control.Monad.Primitive PrimStateghc-prim GHC.TypesIO