úÎN¬H³     None;HMCReturn the value computed by a state transformer computation. The forall- ensures that the internal state used by the 9 computation is inaccessible to the rest of the program.%Johan Tibell <johan.tibell@gmail.com>BSD3None;HMSmart constructorSmart constructorˆCreate a new mutable array of specified size, in the specified state thread, with each element containing the specified initial value.EUnsafely copy the elements of an array. Array bounds are not checked.EUnsafely copy the elements of an array. Array bounds are not checked. O(n)T Insert an element at the given position in this array, increasing its size by one.!O(n)T Insert an element at the given position in this array, increasing its size by one."O(n)8 Update the element at the given position in this array.#O(n)8 Update the element at the given position in this array.$O(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.%O(1)J Update the element at the given position in this array, without copying.&O(n)T Delete an element at the given position in this array, decreasing its size by one.'O(n)T Delete an element at the given position in this array, decreasing its size by one.(Strict version of ).5*+,-./0123456789:;<=>?@A !"#$%BCDEFG&')(HIJKLMNO'*-2356789:;<=>?@A !"#$%BCDEG&')(HIJK1*+,-./0123456789:;<=>?@A !"#$%BCDEFG&')(HIJKLMNONoneP#A more strict 3 tuple for the folds.Persistent vectors based on array mapped triesQäA dispatcher between various equality tests. The length check is extremely cheap. There is another optimized check for the case where neither input is sliced. For sliced inputs, we currently fall back to a list conversion.RWA simple equality implementation for unsliced vectors. This can proceed structurally.S!A dispatcher for comparison testsO(n) Map over the vectorO(n) Right fold over the vector%O(n) Strict left fold over the vectorO(1) The empty vector(O(1) Test to see if the vector is empty."O(1) Get the length of the vector.+O(1) Bounds-checked indexing into a vector.&O(1) Unchecked indexing into a vector.eNote that out-of-bounds indexing might not even crash - it will usually just return nonsense values. .O(1) Construct a vector with a single element.T8A helper to copy an array and add an element to the end. 0O(1) Append an element to the end of the vector.UA recursive helper for  -. This finds the place to add new elements.VThe other recursive helper for  8. This one builds out a sub-tree to the current depth.  O(1) Update a single element at ix with new value elt in v. update ix elt v O(n) Bulk update.  v // updates"For each (index, element) pair in updates , modify v such that the indexth position of v is element. Indices in updates that are not in v are ignored O(1) Return a slice of v of length length starting at index start+. The returned vector may have fewer than lengthi elements if the bounds are off on either side (the start is negative or length takes it past the end).7A slice of negative or zero length is the empty vector. slice start length vÿNote that a slice retains all of the references that the vector it is derived from has. They are not reachable via any traversals and are not counted towards its size, but this may lead to references living longer than intended. If is important to you that this not happen, call  on the return value of  & to drop unused space and references.O(1) Take the first i elements of the vector.vNote that this is just a wrapper around slice and the resulting slice retains references that are inaccessible. Use  if this is undesirable. O(1) Drop i' elements from the front of the vector..Note that this is just a wrapper around slice.,O(1) Split the vector at the given position.FO(n) Force a sliced vector to drop any unneeded space and references.(This is a no-op for an un-sliced vector.O(n) Reverse a vector&O(n) Filter according to the predicate>O(n) Return the elements that do and do not obey the predicate$O(n) Construct a vector from a list.O(n) Apply a predicate pG to the vector, returning the longest prefix of elements that satisfy p.&O(n) Returns the longest suffix after  takeWhile p v.=WXPYZ[\]^_`abcdQRSefgh T UV i jklmnopqrst    0WXPY d]\Z^_`abcc[QRSefgh T UV i jklmnopqrstu      !"#$%&'()*+,-../00123 456 789: ;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoppersistent-vector-0.1.1Data.Vector.PersistentData.Vector.Persistent.UnsafeData.Vector.Persistent.ArrayVectormapfoldrfoldl'emptynulllengthindex unsafeIndex singletonsnocupdate//slicetakedropsplitAtshrinkreversefilter partitionfromList takeWhile dropWhilerunSTbaseGHC.STSTrunSTReparraymarraynewcopycopyMinsertinsert'update' updateWith unsafeUpdate'deletedelete'map'MArrayunMArrayArrayunArrayarrayEq arrayComparelengthMrnfArraynew_ singleton'pairreadwriteindex_indexM_ unsafeFreeze unsafeThawrunrun2 boundedFoldl' boundedFoldr undefinedElemthawtoList traverseArray $fNFDataArray $fOrdArray $fEqArray $fShowArrayFoldInfopvEq pvSimpleEq pvCompare arraySnocpushTailnewPath StrictPairSPFIDataNodedataVec InternalNodeRootNodevecSizevecShift vecOffset vecCapacityvecTail intVecPtrs EmptyVectorpvSimpleCompare pvTraverseappendpvRnfreplaceElementspSndspToPair tailOffset isNotSliced$fNFDataVector$fTraversableVector$fMonoidVector$fFunctorVector$fFoldableVector $fOrdVector $fEqVector