Îõ³h%"x Ø      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWÆProvides useful utilities for operating with mutable primitive arrays.$(c) klapaucius, swamp_agr, 2016-2021BSD3Noneü,Provides arch-dependent mask for hashtables.$(c) klapaucius, swamp_agr, 2016-2021BSD3 Safe-Inferredÿvector-hashtablesX! mask. For 32-bit it is equal to  0x7FFFFFFF . Otherwise, 0x7FFFFFFFFFFFFFFF.6Provides internals of hashtables and set of utilities.$(c) klapaucius, swamp_agr, 2016-2021BSD3None$%ÁËÙ„* vector-hashtablesÔRepresents immutable dictionary as collection of immutable arrays and vectors. See - and ., for conversions from/to mutable dictionary.vector-hashtablesÉRepresents collection of hashtable internal primitive arrays and vectors. hash codes,references to the next element,buckets,keys and values.vector-hashtables Single-element mutable array of Ì with primitive state token parameterized with state, keys and values types. Example*:3import qualified Data.Vector.Storable.Mutable as VM3import qualified Data.Vector.Unboxed.Mutable as UMimport Data.Vector.HashtablesÈtype HashTable k v = Dictionary (PrimState IO) VM.MVector k UM.MVector v4Different vectors could be used for keys and values: storable,mutable,unboxed.óIn most cases unboxed vectors should be used. Nevertheless, it is up to you to decide about final form of hastable. vector-hashtables#Alias for 'MutablePrimArray s Int'.$vector-hashtablesO(1) in the best case, O(n)Å in the worst case. Find dictionary entry by given key in immutable  . If entry not found -1 returned.%vector-hashtablesInfix version of  unsafeRead.&vector-hashtablesInfix version of  unsafeIndex.'vector-hashtablesInfix version of  unsafeWrite.(vector-hashtablesInfix version of  readPrimArray.)vector-hashtablesInfix version of indexPrimArray.*vector-hashtablesInfix version of writePrimArray.+vector-hashtablesO(1) Dictionary with given capacity.,vector-hashtables$Create a copy of mutable dictionary.-vector-hashtablesO(1)‡ Unsafe convert a mutable dictionary to an immutable one without copying. The mutable dictionary may not be used after this operation..vector-hashtablesO(1) Unsafely convert immutable   to a mutable Ñ without copying. The immutable dictionary may not be used after this operation./vector-hashtablesO(n) Retrieve list of keys from .0vector-hashtablesO(n) Retrieve list of values from .1vector-hashtablesO(1) in the best case, O(n)0 in the worst case. Find value by given key in %. Throws an error if value not found.2vector-hashtablesO(1) in the best case, O(n)0 in the worst case. Find value by given key in . Like 2 but return Y if value not found.4vector-hashtablesO(1) in the best case, O(n)Ì in the worst case. Find dictionary entry by given key. If entry not found -1 returned.5vector-hashtablesO(1) in the best case, O(n)ý in the worst case. Insert key and value in dictionary by key's hash. If entry with given key found value will be replaced.:vector-hashtablesO(1) in the best case, O(n)' in the worst case. Delete entry from  by given key.<vector-hashtablesO(1) in the best case, O(n)0 in the worst case. Find value by given key in . Like = but return Y if value not found.=vector-hashtablesO(1) in the best case, O(n)0 in the worst case. Find value by given key in %. Throws an error if value not found.>vector-hashtablesO(1) in the best case, O(n)Á in the worst case. Lookup the index of a key, which is its zero-based index in the sequence sorted by keys. The index is a number from 0 up to, but not including, the size of the dictionary.?vector-hashtablesO(1) Return Z if dictionary is empty, [ otherwise.@vector-hashtablesO(1)6 Return the number of non-empty entries of dictionary.Avector-hashtablesO(1) Return the number of non-empty entries of dictionary. Synonym of @.Bvector-hashtablesO(1) in the best case, O(n) in the worst case. Return Z4 if the specified key is present in the dictionary, [ otherwise.Cvector-hashtablesO(1) in the best case, O(n)$ in the worst case. The expression C ht def k returns the value at key k or returns default value def( when the key is not in the dictionary.Dvector-hashtablesO(1) in the best case, O(n)% in the worst case. The expression (D ht f k) alters the value x at k, or absence thereof. D7 can be used to insert, delete, or update a value in a . ßlet f _ = Nothing ht <- fromList [(5,"a"), (3,"b")] alter ht f 7 toList ht [(3, "b"), (5, "a")] Âht <- fromList [(5,"a"), (3,"b")] alter ht f 5 toList ht [(3 "b")] êlet f _ = Just "c" ht <- fromList [(5,"a"), (3,"b")] alter ht f 7 toList ht [(3, "b"), (5, "a"), (7, "c")] Íht <- fromList [(5,"a"), (3,"b")] alter ht f 5 toList ht [(3, "b"), (5, "c")]Evector-hashtablesO(1) in the best case, O(n)% in the worst case. The expression (E ht f k) alters the value x at k, or absence thereof. E7 can be used to insert, delete, or update a value in a  in the same \ m.Fvector-hashtables O(min n m) in the best case, O(min n m * max n m)‰ in the worst case. The union of two maps. If a key occurs in both maps, the mapping from the first will be the mapping in the result.Gvector-hashtables O(min n m) in the best case, O(min n m * max n m)÷ in the worst case. The union of two maps. The provided function (first argument) will be used to compute the result.Hvector-hashtables O(min n m) in the best case, O(min n m * max n m)– in the worst case. The union of two maps. If a key occurs in both maps, the provided function (first argument) will be used to compute the result.Ivector-hashtablesO(n) in the best case, O(n * m)î in the worst case. Difference of two tables. Return elements of the first table not existing in the second.Jvector-hashtablesO(n) in the best case, O(n * m)¯ in the worst case. Difference with a combining function. When two equal keys are encountered, the combining function is applied to the values of these keys. If it returns YÄ, the element is discarded (proper set difference). If it returns (] y+), the element is updated with a new value y.Kvector-hashtablesO(n) in the best case, O(n * m)ñ in the worst case. Intersection of two maps. Return elements of the first map for keys existing in the second.Lvector-hashtablesÿIntersection of two maps. If a key occurs in both maps the provided function is used to combine the values from the two maps.Mvector-hashtablesÿIntersection of two maps. If a key occurs in both maps the provided function is used to combine the values from the two maps.Nvector-hashtablesO(n) Convert list to a . Ovector-hashtablesO(n) Convert  to a list.É   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQÉ !"#  $%&'()*+,-./0123456789 :;<=>?@ABCDEFGHIJKLMNOPQ:Provides hashtables, basic interface and set of utilities.$(c) klapaucius, swamp_agr, 2016-2021BSD3None›Ë^_\_`abcdefghijklmnopqrstuvwx  $+,-./045:<=?AEFGHIJKLMNO.  $4+,?A/0<=5:EFGHIJKLM-.NOù      !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\WX]WX^_`aZ[bWcd_`e_`f_`g_`h_`i_`j_`k_`l_`m_`n_`o_`p_`q_`r_`s_`t_`u_`v_`w_`x_`y_`z_`{_`|_`}_`~ÿ!vector-hashtables-0.1.0.0-inplaceData.Primitive.PrimArray.Utils$Data.Vector.Hashtables.Internal.MaskData.Vector.Hashtables.InternalData.Vector.Hashtables replicateclone unsafeFreeze unsafeThawgrowWithgrowNoZfreezelengthmask DeleteEntry deleteEntryFrozenDictionary fhashCodefnextfbucketscountfreeList freeCountfkeyfvalue Dictionary_ DictionaryhashCodenextbucketsrefskeyvalueDRefgetDRefIntArraygetCount getFreeList getFreeCountfindElem!~!.~<~~!!.<~ initializekeysvaluesatat' atWithOrElse findEntryinsertinsertWithIndex addOrResizeaddresizedeletedeleteWithIndexlookuplookup' lookupIndexnullsizememberfindWithDefaultalteralterMunion unionWith unionWithKey differencedifferenceWith intersectionintersectionWithintersectionWithKeyfromListtoListprimesgetPrime$fDeleteEntryMVector$fDeleteEntryMVector0$fDeleteEntryMVector1$fEqFrozenDictionary$fOrdFrozenDictionary$fShowFrozenDictionaryghc-prim GHC.TypesIntbase GHC.MaybeNothingTrueFalseprmtv-0.7.2.0-5513e0e8Control.Monad.Primitive PrimMonadJustGHC.Prim RealWorld PrimState primitiveevalPrimioToPrimliftPrim noDuplicateprimToIO primToPrimprimToST primitive_stToPrimtouchunsafeDupableInterleaveunsafeIOToPrimunsafeInlineIOunsafeInlinePrimunsafeInlineSTunsafeInterleaveunsafePrimToIOunsafePrimToPrimunsafePrimToSTunsafeSTToPrim MonadPrim MonadPrimBasePrimBaseinternal