!2;'Q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP SafeXoQRSSafeTNoneFSXUunordered-containersSmart constructorVunordered-containersSmart constructorWunordered-containersCreate a new mutable array of specified size, in the specified state thread, with each element containing the specified initial value.Xunordered-containersEUnsafely copy the elements of an array. Array bounds are not checked.Yunordered-containersEUnsafely copy the elements of an array. Array bounds are not checked.Zunordered-containersCreate a new array of the n first elements of mary.[unordered-containersO(n)T Insert an element at the given position in this array, increasing its size by one.\unordered-containersO(n)T Insert an element at the given position in this array, increasing its size by one.]unordered-containersO(n)8 Update the element at the given position in this array.^unordered-containersO(n)8 Update the element at the given position in this array._unordered-containersO(n) Update the element at the given positio in this array, by applying a function to it. Evaluates the element to WHNF before inserting it into the array.`unordered-containersO(1)J Update the element at the given position in this array, without copying.aunordered-containersO(n)T Delete an element at the given position in this array, decreasing its size by one.bunordered-containersO(n)T Delete an element at the given position in this array, decreasing its size by one.cunordered-containersStrict version of d.&efghijWklmnopqrstuvwXYZ[\]_`xyzadc{|}~NoneFyNone-.2FHIVX_@unordered-containershA map from keys to values. A map cannot contain duplicate keys; each key can map to at most one value.unordered-containers8A set of values. A set cannot contain duplicate values.@Convenience function. Compute a hash value for the given value.unordered-containersO(1) Construct an empty map.unordered-containersO(1)' Construct a map with a single element.unordered-containersO(1) Return  if this map is empty,  otherwise.unordered-containersO(n)5 Return the number of key-value mappings in this map.unordered-containersO(log n) Return . if the specified key is present in the map,  otherwise.unordered-containersO(log n)< Return the value to which the specified key is mapped, or - if this map contains no mapping for the key.unordered-containers_lookup' is a version of lookup that takes the hash separately. It is used to implement alterF.unordered-containersO(log n)z Return the value to which the specified key is mapped, or the default value if this map contains no mapping for the key.unordered-containersO(log n)? Return the value to which the specified key is mapped. Calls - if this map contains no mapping for the key.unordered-containers Create a  value with two  values.unordered-containers Create a  or  node. unordered-containersO(log n) Associate the specified value with the specified key in this map. If this map previously contained a mapping for the key, the old value is replaced.unordered-containers!In-place update version of insertunordered-containersACreate a map from two key-value pairs which hashes don't collide. unordered-containersO(log n) Associate the value with the key in this map. If this map previously contained a mapping for the key, the old value is replaced by the result of applying the given function to the new and old value. Example: 2insertWith f k v map where f new old = new + oldunordered-containersinsertModifying is a lot like insertWith; we use it to implement alterF. It takes a value to insert when the key is absent and a function to apply to calculate a new value when the key is present. Thanks to the unboxed unary tuple, we avoid introducing any unnecessary thunks in the tree.unordered-containers%In-place update version of insertWith unordered-containersO(log n)D Remove the mapping for the specified key from this map if present.unordered-containersADelete optimized for the case when we know the key is in the map.It is only valid to call this when the key exists in the map and you know the hash collision position if there was one. This information can be obtained from 0. If there is no collision pass (-1) as collPos.ZWe can skip: - the key equality check on the leaf, if we reach a leaf it must be the key unordered-containersO(log n)i Adjust the value tied to a given key in this map only if it is present. Otherwise, leave the map alone.unordered-containers Much like  , but not inherently leaky. unordered-containersO(log n) The expression (  f k map) updates the value x at k(, (if it is in the map). If (f k x) is %, the element is deleted. If it is (+ y), the key k is bound to the new value y.unordered-containersO(log n) The expression ( f k map) alters the value x at k, or absence thereof. alterH can be used to insert, delete, or update a value in a map. In short :  k ( f k m) = f ( k m). unordered-containersO(log n) The expression ( f k map) alters the value x at k, or absence thereof. alterF< can be used to insert, delete, or update a value in a map.Note:  is a flipped version of the at combinator from  Nhttps://hackage.haskell.org/package/lens-4.15.4/docs/Control-Lens-At.html#v:atControl.Lens.At.unordered-containersThis is the default version of alterF that we use in most non-trivial cases. It's called "eager" because it looks up the given key in the map eagerly, whether or not the given function requires that information.unordered-containersO(n+m)t The union of two maps. If a key occurs in both maps, the mapping from the first will be the mapping in the result.unordered-containersO(n+m) The union of two maps. If a key occurs in both maps, the provided function (first argument) will be used to compute the result.unordered-containersO(n+m) The union of two maps. If a key occurs in both maps, the provided function (first argument) will be used to compute the result.unordered-containersStrict in the result of f.unordered-containers<Construct a set containing all elements from a list of sets.unordered-containersO(n): Transform this map by applying a function to every value.unordered-containersO(n): Transform this map by applying a function to every value.unordered-containersO(n) Perform an & action for each key-value pair in a  and produce a  of all the results.Note: the order in which the actions occur is unspecified. In particular, when the map contains hash collisions, the order in which the actions associated with the keys involved will depend in an unspecified way on their insertion order.unordered-containers O(n*log m)V Difference of two maps. Return elements of the first map not existing in the second.unordered-containers O(n*log m) 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 D, the element is discarded (proper set difference). If it returns ( y+), the element is updated with a new value y.unordered-containers O(n*log m)] Intersection of two maps. Return elements of the first map for keys existing in the second.unordered-containersO(n+m) Intersection of two maps. If a key occurs in both maps the provided function is used to combine the values from the two maps.unordered-containersO(n+m) Intersection of two maps. If a key occurs in both maps the provided function is used to combine the values from the two maps.unordered-containersO(n)! Reduce this map by applying a binary operator to all elements, using the given starting value (typically the left-identity of the operator). Each application of the operator is evaluated before using the result in the next application. This function is strict in the starting value.unordered-containersO(n)" Reduce this map by applying a binary operator to all elements, using the given starting value (typically the left-identity of the operator). Each application of the operator is evaluated before using the result in the next application. This function is strict in the starting value.unordered-containersO(n) Reduce this map by applying a binary operator to all elements, using the given starting value (typically the right-identity of the operator).unordered-containersO(n) Reduce this map by applying a binary operator to all elements, using the given starting value (typically the right-identity of the operator). unordered-containersO(n)] Transform this map by applying a function to every value and retaining only some of them.!unordered-containersO(n)] Transform this map by applying a function to every value and retaining only some of them."unordered-containersO(n)D Filter this map by retaining only elements satisfying a predicate.unordered-containersCommon implementation for " and  2, allowing the former to former to reuse terms.#unordered-containersO(n)N Filter this map by retaining only elements which values satisfy a predicate.$unordered-containersO(n)A Return a list of this map's keys. The list is produced lazily.%unordered-containersO(n)C Return a list of this map's values. The list is produced lazily.&unordered-containersO(n)o Return a list of this map's elements. The list is produced lazily. The order of its elements is unspecified.'unordered-containersO(n){ Construct a map with the supplied mappings. If the list contains duplicate mappings, the later mappings take precedence.(unordered-containers O(n*log n)b Construct a map from a list of elements. Uses the provided function to merge duplicate entries.unordered-containersO(n)> Look up the value associated with the given key in an array.unordered-containersO(n)I Lookup the value associated with the given key in this array. Returns  if the key wasn't found.unordered-containersO(n)8 Update the element at the given position in this array.unordered-containersO(n)8 Update the element at the given position in this array.unordered-containersO(n)V Update the element at the given position in this array, by applying a function to it.unordered-containersWUnsafely clone an array of 16 elements. The length of the input array is not checked.unordered-containers Mask out the 3 bits used for indexing at this level of the tree.unordered-containersA bitmask with the  least significant bits set.unordered-containers~Check if two the two arguments are the same value. N.B. This function might give false negatives (due to GC moving objects.)unordered-containersThe order is total.Note: Because the hash is not guaranteed to be stable across library versions, OSes, or architectures, neither is an actual order of elements in  or an result of  .is stable.unordered-containersDefault value to return.R  !"#$%&'(9 2010-2012 Johan Tibell BSD-stylejohan.tibell@gmail.com provisionalportable TrustworthyF_)unordered-containersO(1)' Construct a map with a single element.*unordered-containersO(log n) Associate the specified value with the specified key in this map. If this map previously contained a mapping for the key, the old value is replaced.+unordered-containersO(log n) Associate the value with the key in this map. If this map previously contained a mapping for the key, the old value is replaced by the result of applying the given function to the new and old value. Example: 2insertWith f k v map where f new old = new + oldunordered-containers%In-place update version of insertWith,unordered-containersO(log n)i Adjust the value tied to a given key in this map only if it is present. Otherwise, leave the map alone.-unordered-containersO(log n) The expression (- f k map) updates the value x at k(, (if it is in the map). If (f k x) is %, the element is deleted. If it is (+ y), the key k is bound to the new value y..unordered-containersO(log n) The expression (. f k map) alters the value x at k, or absence thereof. alterH can be used to insert, delete, or update a value in a map. In short :  k (. f k m) = f ( k m)./ unordered-containersO(log n) The expression (/ f k map) alters the value x at k, or absence thereof. alterF< can be used to insert, delete, or update a value in a map.Note: / is a flipped version of the at combinator from  Nhttps://hackage.haskell.org/package/lens-4.15.4/docs/Control-Lens-At.html#v:atControl.Lens.At.unordered-containersThis is the default version of alterF that we use in most non-trivial cases. It's called "eager" because it looks up the given key in the map eagerly, whether or not the given function requires that information.0unordered-containersO(n+m) The union of two maps. If a key occurs in both maps, the provided function (first argument) will be used to compute the result.1unordered-containersO(n+m) The union of two maps. If a key occurs in both maps, the provided function (first argument) will be used to compute the result.2unordered-containersO(n): Transform this map by applying a function to every value.3unordered-containersO(n): Transform this map by applying a function to every value.4unordered-containersO(n)] Transform this map by applying a function to every value and retaining only some of them.5unordered-containersO(n)] Transform this map by applying a function to every value and retaining only some of them.6unordered-containersO(n) Perform an & action for each key-value pair in a  and produce a  of all the results. Each # will be strict in all its values. traverseWithKey f = fmap (3 id) . Data.HashMap.Lazy.  f Note: the order in which the actions occur is unspecified. In particular, when the map contains hash collisions, the order in which the actions associated with the keys involved will depend in an unspecified way on their insertion order.7unordered-containers O(n*log m) 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 D, the element is discarded (proper set difference). If it returns ( y+), the element is updated with a new value y.8unordered-containersO(n+m) Intersection of two maps. If a key occurs in both maps the provided function is used to combine the values from the two maps.9unordered-containersO(n+m) Intersection of two maps. If a key occurs in both maps the provided function is used to combine the values from the two maps.:unordered-containers O(n*log n)| Construct a map with the supplied mappings. If the list contains duplicate mappings, the later mappings take precedence.;unordered-containers O(n*log n)v Construct a map from a list of elements. Uses the provided function f to merge duplicate entries (f newVal oldVal). For example: %fromListWith (+) [ (x, 1) | x <- xs ]Cwill create a map with number of occurrences of each element in xs. -fromListWith (++) [ (k, [v]) | (k, v) <- xs ]]will group all values by their keys in a list 'xs :: [(k, v)]' and return a 'HashMap k [v]'.unordered-containersAppend the given key and value to the array. If the key is already present, instead update the value of the key by applying the given function to the new and old value (in that order). The value is always evaluated to WHNF before being inserted into the array.unordered-containersAppend the given key and value to the array. If the key is already present, instead update the value of the key by applying the given function to the new and old value (in that order). The value is always evaluated to WHNF before being inserted into the array.) "#$%&)*+,-./0123456789:; 2011 Bryan O'Sullivan BSD-stylejohan.tibell@gmail.com provisionalportable Trustworthy2HIV '<unordered-containers8A set of values. A set cannot contain duplicate values.=unordered-containersO(1) Construct an empty set.>unordered-containersO(1)' Construct a set with a single element.?unordered-containersO(1) Convert to the equivalent .@unordered-containersO(1) Convert from the equivalent .A unordered-containersO(n) Produce a < of all the keys in the given .Bunordered-containersO(n+m)8 Construct a set containing all elements from both sets.UTo obtain good performance, the smaller set must be presented as the first argument.Cunordered-containers<Construct a set containing all elements from a list of sets.Dunordered-containersO(1) Return  if this set is empty,  otherwise.Eunordered-containersO(n)+ Return the number of elements in this set.Funordered-containersO(log n) Return - if the given value is present in this set,  otherwise.Gunordered-containersO(log n)% Add the specified value to this set.Hunordered-containersO(log n)6 Remove the specified value from this set if present.Iunordered-containersO(n)m Transform this set by applying a function to every value. The resulting set may be smaller than the source.Junordered-containersO(n)V Difference of two sets. Return elements of the first set not existing in the second.Kunordered-containersO(n)Y Intersection of two sets. Return elements present in both the first set and the second.Lunordered-containersO(n)( Reduce this set by applying a binary operator to all elements, using the given starting value (typically the left-identity of the operator). Each application of the operator is evaluated before before using the result in the next application. This function is strict in the starting value.Munordered-containersO(n) Reduce this set by applying a binary operator to all elements, using the given starting value (typically the right-identity of the operator).Nunordered-containersO(n)D Filter this set by retaining only elements satisfying a predicate.Ounordered-containersO(n)E Return a list of this set's elements. The list is produced lazily.Punordered-containersO(n*min(W, n))) Construct a set from a list of elements.<=>?@ABCDEFGHIJKLMNOP2011 Bryan O'Sullivan BSD-stylejohan.tibell@gmail.com provisionalportableSafe!<=>?@BCDEFGHIJKLMNOP<=>BCDEFGHIJKLMNOP?@2010-2012 Johan Tibell BSD-stylejohan.tibell@gmail.com provisionalportableSafe#* "#$%&)*+,-./0123456789:;A*)*+ ,-./01326789#"54$%&:;A2010-2012 Johan Tibell BSD-stylejohan.tibell@gmail.com provisionalportable Trustworthy&*  !"#$%&'(A* #"! $%&'(A   ! "#$%&'()*+,-./0123          ! + , # % & 2 3 4  5 6 7        ! " $ ' ) . 1 289:;<=>?@ABCDEFGHI!JKLMNOPQRSTUVWXYZ[')\21]^_`abcdbce;fgh;ijklmnopqrstuvw;fxyz;{|}~Ubm t y 4unordered-containers-0.2.10.0-LgoTL3wbBEY5bZIDJiyxW4Data.HashMap.StrictData.HashMap.Lazy Data.HashSetData.HashMap.ListData.HashMap.UnsafeData.HashMap.ArrayData.HashMap.UnsafeShiftData.HashMap.BaseData.HashMap.Strict.BasetraverseWithKeyData.HashSet.BaseHashMapempty singletonnullsizememberlookup lookupDefault!insert insertWithdeleteadjustupdatealteralterFunion unionWith unionWithKeyunions mapWithKeymap differencedifferenceWith intersectionintersectionWithintersectionWithKeyfoldl' foldlWithKey'foldr foldrWithKeymapMaybeWithKeymapMaybe filterWithKeyfilterkeyselemstoListfromList fromListWithHashSettoMapfromMapkeysSetisPermutationByunorderedComparedeleteBybaseGHC.STrunSTarraymarraynewcopycopyMtriminsertMupdateM updateWith' unsafeUpdateMdeleteMmap'MArrayArrayunsafeSameArray sameArray1lengthlengthMnew_ singletonMpairreadwriteindexindex#indexM unsafeFreeze unsafeThawrunrun2thawtraverse traverse' unsafeShiftL unsafeShiftRhashghc-prim GHC.TypesTrueFalse GHC.MaybeNothinglookup'GHC.Errerror collision CollisionLeafbitmapIndexedOrFull BitmapIndexedFull unsafeInserttwoinsertModifyingunsafeInsertWithdeleteKeyExistslookupRecordCollisionadjust#Just alterFEager unionArrayByGHC.Base Applicative filterMapAuxlookupInArrayContindexOfupdate16 update16M update16With'clone16 bitsPerSubkey fullNodeMaskptrEq $fOrdHashMap GHC.Classescompare LookupResAbsentPresentBitmapHashEmptyL equalKeys1 equalKeysinsert' insertNewKeyinsertKeyExistsdelete'updateOrConcatWithupdateOrConcatWithKey sparseIndexmaskupdateOrSnocWithupdateOrSnocWithKey