!7      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None-16FK'+ vector-sized:A wrapper to tag mutable vectors with a type level length.Be careful when using the constructor here to not construct sized vectors which have a different length than that specified in the type parameter!None -;<=QSTViI. vector-sizedO(1). Yield the length of the mutable vector as an . vector-sizedO(1)- Yield the length of the mutable vector as a . vector-sizedO(1)* Check whether the mutable vector is empty  vector-sizedO(1)Z Yield a slice of the mutable vector without copying it with an inferred length argument.  vector-sizedO(1)Z Yield a slice of the mutable vector without copying it with an explicit length argument.  vector-sizedO(1)O Yield all but the last element of a non-empty mutable vector without copying.  vector-sizedO(1)P Yield all but the first element of a non-empty mutable vector without copying.  vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is inferred from the type. vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is given explicitly as a  argument. vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is inferred from the type. vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is givel explicitly as a  argument. vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The lengths of the resultant vector are inferred from the type. vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The length of the first resultant vector is passed explicitly as a  argument. vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is inferred from the type. vector-sizedCCreate a mutable vector where the length is inferred from the type. vector-sizedcCreate a mutable vector where the length is inferred from the type. The memory is not initialized. vector-sizedfCreate a mutable vector where the length is inferred from the type and fill it with an initial value. vector-sizedCCreate a mutable vector where the length is given explicitly as a , argument and fill it with an initial value. vector-sizedCreate a mutable vector where the length is inferred from the type and fill it with values produced by repeatedly executing the monadic action. vector-sizedCCreate a mutable vector where the length is given explicitly as a W argument and fill it with values produced by repeatedly executing the monadic action. vector-sized"Create a copy of a mutable vector. vector-sized9Grow a mutable vector by an amount given explicitly as a  argument. vector-sizedKGrow a mutable vector (from the front) by an amount given explicitly as a  argument. vector-sizedgReset all elements of the vector to some undefined value, clearing all references to external objects. vector-sizedO(1)7 Yield the element at a given type-safe position using . vector-sizedO(1)7 Yield the element at a given type-safe position using .  vector-sizedO(1) Yield the element at a given # position without bounds checking.! vector-sizedO(1)9 Replace the element at a given type-safe position using ." vector-sizedO(1)9 Replace the element at a given type-safe position using .# vector-sizedO(1) Replace the element at a given # position without bounds checking.$ vector-sizedO(1)8 Modify the element at a given type-safe position using .% vector-sizedO(1)8 Modify the element at a given type-safe position using .& vector-sizedO(1) Modify the element at a given # position without bounds checking.' vector-sizedO(1)7 Swap the elements at a given type-safe position using s.( vector-sizedO(1) Swap the elements at a given # position without bounds checking.) vector-sizedO(1)V Replace the element at a given type-safe position and return the old element, using .* vector-sizedO(1)V Replace the element at a given type-safe position and return the old element, using .+ vector-sizedO(1) Replace the element at a given F position and return the old element. No bounds checks are performed., vector-sizedWCompute the next (lexicographically) permutation of a given vector in-place. Returns ( when the input is the last permutation.- vector-sized2Set all elements of the vector to the given value.. vector-sized/Copy a vector. The two vectors may not overlap./ vector-sizedDCopy a vector. The two vectors may not overlap. This is not checked.0 vector-sizedZMove the contents of a vector. If the two vectors do not overlap, this is equivalent to .. Otherwise, the copying is performed as if the source vector were copied to a temporary vector and then the temporary vector was copied to the target vector.1 vector-sized Convert a    into a  7 if it has the correct size, otherwise return Nothing.-Note that this does no copying; the returned  is a reference to the exact same vector in memory as the given one, and any modifications to it are also reflected in the given   .2 vector-sizedTakes a   ) and returns a continuation providing a   with a size parameter nH that is determined at runtime based on the length of the input vector.Essentially converts a    into a  " with the correct size parameter n.-Note that this does no copying; the returned  is a reference to the exact same vector in memory as the given one, and any modifications to it are also reflected in the given   .3 vector-sized Convert a   into a   ..Note that this does no copying; the returned    is a reference to the exact same vector in memory as the given one, and any modifications to it are also reflected in the given .  vector-sizedstarting index  vector-sizedstarting index vector-sizedlength. vector-sizedtarget vector-sizedsource/ vector-sizedtarget vector-sizedsource0 vector-sizedtarget vector-sizedsource/  !"#$%&'()*+,-./0123/ !"$%')* #&(+,-.0/123None-13456FK4 vector-sized2A wrapper to tag vectors with a type level length.Be careful when using the constructor here to not construct sized vectors which have a different length than that specified in the type parameter!4545None-13456;<=FKQSTViB vector-sizedO(1)& Yield the length of the vector as an . This is more like  than   , extracting the value from the 0 instance and not looking at the vector itself.C vector-sizedO(1)% Yield the length of the vector as a . This function doesn't doW anything; it merely allows the size parameter of the vector to be passed around as a .D vector-sizedO(1) Reveal a 8 instance for a vector's length, determined at runtime.E vector-sizedO(1) Reveal a  instance and / for a vector's length, determined at runtime.F vector-sizedO(1) Safe indexing using a .G vector-sizedO(1) Safe indexing using a .H vector-sizedO(1)/ Indexing using an Int without bounds checking.I vector-sizedO(1)/ Yield the first element of a non-empty vector.J vector-sizedO(1). Yield the last element of a non-empty vector.K vector-sizedLens to access (O(1)) and update (O(n)$) an arbitrary element by its index.L vector-sizedLens to access (O(1)) and update (O(n)*) the first element of a non-empty vector.M vector-sizedLens to access (O(1)) and update (O(n))) the last element of a non-empty vector.N vector-sizedO(1)5 Safe indexing in a monad. See the documentation for + for an explanation of why this is useful.O vector-sizedO(1)" Safe indexing in a monad using a . See the documentation for * for an explanation of why this is useful.P vector-sizedO(1)K Indexing using an Int without bounds checking. See the documentation for * for an explanation of why this is useful.Q vector-sizedO(1)V Yield the first element of a non-empty vector in a monad. See the documentation for * for an explanation of why this is useful.R vector-sizedO(1)U Yield the last element of a non-empty vector in a monad. See the documentation for * for an explanation of why this is useful.S vector-sizedO(1)R Yield a slice of the vector without copying it with an inferred length argument.T vector-sizedO(1)R Yield a slice of the vector without copying it with an explicit length argument.U vector-sizedO(1)G Yield all but the last element of a non-empty vector without copying.V vector-sizedO(1)H Yield all but the first element of a non-empty vector without copying.W vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is inferred from the type.X vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is given explicitly as a  argument.Y vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is inferred from the type.Z vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is givel explicitly as a  argument.[ vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The lengths of the resultant vector are inferred from the type.\ vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The length of the first resultant vector is passed explicitly as a  argument.] vector-sizedO(1) Empty vector.^ vector-sizedO(1)! Vector with exactly one element._ vector-sizedO(n) Construct a vector in a type safe manner fromTuple (1,2) :: Vector v 2 Int fromTuple ("hey", "what's", "going", "on") :: Vector v 4 String` vector-sizedO(n)g Construct a vector with the same element in each position where the length is inferred from the type.a vector-sizedO(n)f Construct a vector with the same element in each position where the length is given explicitly as a  argument.b vector-sizedO(n){ construct a vector of the given length by applying the function to each index where the length is inferred from the type.c vector-sizedO(n)z construct a vector of the given length by applying the function to each index where the length is given explicitly as a  argument.d vector-sizedO(n)j Apply function n times to value. Zeroth element is original value. The length is inferred from the type.e vector-sizedO(n)i Apply function n times to value. Zeroth element is original value. The length is given explicitly as a  argument.f vector-sizedO(n) Execute the monadic action n0 times and store the results in a vector where n is inferred from the type.g vector-sizedO(n) Execute the monadic action n0 times and store the results in a vector where n is given explicitly as a  argument.h vector-sizedO(n) Construct a vector of length nQ by applying the monadic action to each index where n is inferred from the type.i vector-sizedO(n) Construct a vector of length nP by applying the monadic action to each index where n is given explicitly as a  argument.j vector-sizedO(n)! Construct a vector with exactly nT elements by repeatedly applying the generator function to the a seed. The length, n, is inferred from the type.k vector-sizedO(n)! Construct a vector with exactly nT elements by repeatedly applying the generator function to the a seed. The length, n, is given explicitly as a  argument.l vector-sizedO(n) Yield a vector of length n containing the values x, x+1 etc. The length, n, is inferred from the type.m vector-sizedO(n) Yield a vector of length n containing the values x, x+1 etc. The length, n, is given explicitly as a  argument.n vector-sizedO(n): Yield a vector of the given length containing the values x, x+y, x+y+y etc. The length, n, is inferred from the type.o vector-sizedO(n): Yield a vector of the given length containing the values x, x+y, x+y+y etc. The length, n, is given explicitly as a  argument.p vector-sizedO(n) Prepend an element.q vector-sizedO(n) Append an element.r vector-sizedO(m+n) Concatenate two vectors.s vector-sizedO(n)Y Yield the argument but force it not to retain any extra memory, possibly by copying it.@This is especially useful when dealing with slices. For example: force (slice 0 2 <huge vector>)Here, the slice retains a reference to the huge vector. Forcing it creates a copy of just the elements that belong to the slice and allows the huge vector to be garbage collected.t vector-sizedO(m+n) For each pair (i,a)8 from the list, replace the vector element at position i by a. ,<5,9,2,7> // [(2,1),(0,3),(2,8)] = <3,9,8,7>u vector-sizedO(m+n) For each pair (i,a)O from the vector of index/value pairs, replace the vector element at position i by a. 0update <5,9,2,7> <(2,1),(0,3),(2,8)> = <3,9,8,7>v vector-sizedO(m+n) For each index i4 from the index vector and the corresponding value aO from the value vector, replace the element of the initial vector at position i by a. .update_ <5,9,2,7> <2,0,2> <1,3,8> = <3,9,8,7>)This function is useful for instances of 4& that cannot store pairs. Otherwise, u is probably more convenient. update_ xs is ys = u xs ( is ys) w vector-sized Same as (t) but without bounds checking.x vector-sizedSame as u but without bounds checking.y vector-sizedSame as v but without bounds checking.z vector-sizedO(m+n) For each pair (i,b), from the list, replace the vector element a at position i by f a b. ?accum (+) <5,9,2> [(2,4),(1,6),(0,3),(1,7)] = <5+3, 9+6+7, 2+4>{ vector-sizedO(m+n) For each pair (i,b)7 from the vector of pairs, replace the vector element a at position i by f a b. Daccumulate (+) <5,9,2> <(2,4),(1,6),(0,3),(1,7)> = <5+3, 9+6+7, 2+4>| vector-sizedO(m+n) For each index i4 from the index vector and the corresponding value bT from the the value vector, replace the element of the initial vector at position i by f a b. ?accumulate_ (+) <5,9,2> <2,1,0,1> <4,6,3,7> = <5+3, 9+6+7, 2+4>)This function is useful for instances of 4& that cannot store pairs. Otherwise, { is probably more convenient: accumulate_ f as is bs = { f as ( is bs) } vector-sizedSame as z but without bounds checking.~ vector-sizedSame as { but without bounds checking. vector-sizedSame as | but without bounds checking. vector-sizedO(n) Reverse a vector vector-sizedO(n)5 Yield the vector obtained by replacing each element i of the index vector by xs!i. This is equivalent to  (xs!) is# but is often much more efficient. 3backpermute <a,b,c,d> <0,3,2,3,1,0> = <a,d,c,d,b,a> vector-sizedSame as  but without bounds checking. vector-sizedO(n)- Pair each element in a vector with its index vector-sizedO(n) Map a function over a vector vector-sizedO(n)< Apply a function to every element of a vector and its index vector-sizedO(n*m)} Map a function over a vector and concatenate the results. The function is required to always return the same length vector. vector-sizedO(n)V Apply the monadic action to all elements of the vector, yielding a vector of results vector-sizedO(n)c Apply the monadic action to every element of a vector and its index, yielding a vector of results vector-sizedO(n)M Apply the monadic action to all elements of a vector and ignore the results vector-sizedO(n)[ Apply the monadic action to every element of a vector and its index, ignoring the results vector-sizedO(n)e Apply the monadic action to all elements of the vector, yielding a vector of results. Equvalent to flip . vector-sizedO(n)] Apply the monadic action to all elements of a vector and ignore the results. Equivalent to flip . vector-sizedO(n)< Zip two vectors of the same length with the given function. vector-sized*Zip three vectors with the given function. vector-sizedO(n)\ Zip two vectors of the same length with a function that also takes the elements' indices). vector-sizedO(n)# Zip two vectors of the same length vector-sizedO(n)^ Zip the two vectors of the same length with the monadic action and yield a vector of results vector-sizedO(n)k Zip the two vectors with a monadic action that also takes the element index and yield a vector of results vector-sizedO(n)C Zip the two vectors with the monadic action and ignore the results vector-sizedO(n)d Zip the two vectors with a monadic action that also takes the element index and ignore the results vector-sized O(min(m,n)) Unzip a vector of pairs. vector-sizedO(n)( Check if the vector contains an element vector-sizedO(n)= Check if the vector does not contain an element (inverse of ) vector-sizedO(n) Yield - the first element matching the predicate or  if no such element exists. vector-sizedO(n) Yield ; the index of the first element matching the predicate or  if no such element exists. vector-sizedO(n) Yield ; the index of the first occurence of the given element or O if the vector does not contain the element. This is a specialised version of . vector-sizedO(n) Left fold vector-sizedO(n) Left fold on non-empty vectors vector-sizedO(n)" Left fold with strict accumulator vector-sizedO(n)7 Left fold on non-empty vectors with strict accumulator vector-sizedO(n) Right fold vector-sizedO(n) Right fold on non-empty vectors vector-sizedO(n)% Right fold with a strict accumulator vector-sizedO(n)8 Right fold on non-empty vectors with strict accumulator vector-sizedO(n); Left fold (function applied to each element and its index) vector-sizedO(n)T Left fold with strict accumulator (function applied to each element and its index) vector-sizedO(n)< Right fold (function applied to each element and its index) vector-sizedO(n)U Right fold with strict accumulator (function applied to each element and its index) vector-sizedO(n)- Check if all elements satisfy the predicate. vector-sizedO(n). Check if any element satisfies the predicate. vector-sizedO(n) Check if all elements are  vector-sizedO(n) Check if any element is  vector-sizedO(n) Compute the sum of the elements vector-sizedO(n)$ Compute the produce of the elements vector-sizedO(n)3 Yield the maximum element of the non-empty vector. vector-sizedO(n)_ Yield the maximum element of the non-empty vector according to the given comparison function. vector-sizedO(n)3 Yield the minimum element of the non-empty vector. vector-sizedO(n)_ Yield the minimum element of the non-empty vector according to the given comparison function. vector-sizedO(n)@ Yield the index of the maximum element of the non-empty vector. vector-sizedO(n)l Yield the index of the maximum element of the non-empty vector according to the given comparison function. vector-sizedO(n)@ Yield the index of the minimum element of the non-empty vector. vector-sizedO(n)l Yield the index of the minimum element of the non-empty vector according to the given comparison function. vector-sizedO(n) Monadic fold vector-sizedO(n)< Monadic fold (action applied to each element and its index) vector-sizedO(n)$ Monadic fold over non-empty vectors vector-sizedO(n)% Monadic fold with strict accumulator vector-sizedO(n)U Monadic fold with strict accumulator (action applied to each element and its index) vector-sizedO(n)< Monadic fold over non-empty vectors with strict accumulator vector-sizedO(n)& Monadic fold that discards the result vector-sizedO(n)V Monadic fold that discards the result (action applied to each element and its index) vector-sizedO(n)= Monadic fold over non-empty vectors that discards the result vector-sizedO(n)> Monadic fold with strict accumulator that discards the result vector-sizedO(n)n Monadic fold with strict accumulator that discards the result (action applied to each element and its index) vector-sizedO(n)T Monad fold over non-empty vectors with strict accumulator that discards the result vector-sized,Evaluate each action and collect the results vector-sized,Evaluate each action and discard the results vector-sizedO(n) Prescan prescanl f z = U .  f z  Example: $prescanl (+) 0 <1,2,3,4> = <0,1,3,6> vector-sizedO(n) Prescan with strict accumulator vector-sizedO(n) Scan vector-sizedO(n) Scan with strict accumulator vector-sizedO(n) Haskell-style scan vector-sizedO(n)+ Haskell-style scan with strict accumulator vector-sizedO(n) Scan over a non-empty vector vector-sizedO(n)7 Scan over a non-empty vector with a strict accumulator vector-sizedO(n) Right-to-left prescan vector-sizedO(n). Right-to-left prescan with strict accumulator vector-sizedO(n) Right-to-left scan vector-sizedO(n)+ Right-to-left scan with strict accumulator vector-sizedO(n)! Right-to-left Haskell-style scan vector-sizedO(n)9 Right-to-left Haskell-style scan with strict accumulator vector-sizedO(n)+ Right-to-left scan over a non-empty vector vector-sizedO(n)F Right-to-left scan over a non-empty vector with a strict accumulator vector-sizedO(n) Convert a vector to a list vector-sizedO(n) Convert a list to a vector vector-sizedO(n) Convert the first n_ elements of a list to a vector. The length of the resultant vector is inferred from the type. vector-sizedO(n) Convert the first n^ elements of a list to a vector. The length of the resultant vector is given explicitly as a  argument. vector-sizedO(n){ Takes a list and returns a continuation providing a vector with a size parameter corresponding to the length of the list.aEssentially converts a list into a vector with the proper size parameter, determined at runtime.See  vector-sizedO(n) Convert different vector types vector-sizedO(n)/ Yield an immutable copy of the mutable vector. vector-sizedO(1) Unsafely convert a mutable vector to an immutable one withouy copying. The mutable vector may not be used after this operation. vector-sizedO(n). Yield a mutable copy of the immutable vector. vector-sizedO(n) Unsafely convert an immutable vector to a mutable one without copying. The immutable vector may not be used after this operation. vector-sizedO(n)- Copy an immutable vector into a mutable one. vector-sized Convert a   into a 7 if it has the correct size, otherwise return Nothing. vector-sizedTakes a  ) and returns a continuation providing a   with a size parameter nH that is determined at runtime based on the length of the input vector.Essentially converts a   into a " with the correct size parameter n. vector-sizedApply a function on unsized vectors to a sized vector. The function must preserve the size of the vector, this is not checked. vector-sizedThe E instance for sized vectors does not have the same behaviour as the 0 instance for the unsized vectors found in the vectors package. This instance has mempty = replicate mempty and mappend = zipWith mappend , where the vectors3 instance uses the empty vector and concatenation.If  is not necessary, using the  instance over this  will dodge the  constraint. vector-sizedThe E instance for sized vectors does not have the same behaviour as the 0 instance for the unsized vectors found in the vectors package. This instance has (<>) = zipWith (<>), but vectors uses concatentation. vector-sizedThe E instance for sized vectors does not have the same behaviour as the 0 instance for the unsized vectors found in the vectorsC package. The instance defined here has the same behaviour as the  instance. vector-sizedAAny sized vector containing storable elements is itself storable.D vector-sized-a vector of some (potentially unknown) length vector-sized3a value that depends on knowing the vector's length vector-sized"the value computed with the lengthE vector-sized-a vector of some (potentially unknown) length vector-sizedIa value that depends on knowing the vector's length, which is given as a  vector-sized"the value computed with the lengthS vector-sizedstarting indexT vector-sizedstarting index vector-sizedlengtht vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n)u vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n)v vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n)w vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n)x vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n)y vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n)z vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n){ vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n)| vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n)} vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n)~ vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n) vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n) vector-sizedxs value vector vector-sizedis index vector (of length n) vector-sizedxs value vector vector-sizedis index vector (of length n)4BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~4BCDEFGHIJNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~KLM44None-<QSTV!%/ vector-sized specialized to use  vector-sizedO(1). Yield the length of the mutable vector as an . vector-sizedO(1)- Yield the length of the mutable vector as a . vector-sizedO(1)* Check whether the mutable vector is empty vector-sizedO(1)Z Yield a slice of the mutable vector without copying it with an inferred length argument. vector-sizedO(1)Z Yield a slice of the mutable vector without copying it with an explicit length argument. vector-sizedO(1)O Yield all but the last element of a non-empty mutable vector without copying. vector-sizedO(1)P Yield all but the first element of a non-empty mutable vector without copying. vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is inferred from the type. vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is given explicitly as a  argument. vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is inferred from the type. vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is givel explicitly as a  argument. vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The lengths of the resultant vector are inferred from the type. vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The length of the first resultant vector is passed explicitly as a  argument.  vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is inferred from the type.  vector-sizedCCreate a mutable vector where the length is inferred from the type.  vector-sizedcCreate a mutable vector where the length is inferred from the type. The memory is not initialized.  vector-sizedfCreate a mutable vector where the length is inferred from the type and fill it with an initial value.  vector-sizedCCreate a mutable vector where the length is given explicitly as a , argument and fill it with an initial value. vector-sizedCreate a mutable vector where the length is inferred from the type and fill it with values produced by repeatedly executing the monadic action. vector-sizedCCreate a mutable vector where the length is given explicitly as a W argument and fill it with values produced by repeatedly executing the monadic action. vector-sized"Create a copy of a mutable vector. vector-sized9Grow a mutable vector by an amount given explicitly as a  argument. vector-sizedKGrow a mutable vector (from the front) by an amount given explicitly as a  argument. vector-sizedgReset all elements of the vector to some undefined value, clearing all references to external objects. vector-sizedO(1)7 Yield the element at a given type-safe position using . vector-sizedO(1)7 Yield the element at a given type-safe position using . vector-sizedO(1) Yield the element at a given # position without bounds checking. vector-sizedO(1)9 Replace the element at a given type-safe position using . vector-sizedO(1)9 Replace the element at a given type-safe position using . vector-sizedO(1) Replace the element at a given # position without bounds checking. vector-sizedO(1)8 Modify the element at a given type-safe position using . vector-sizedO(1)8 Modify the element at a given type-safe position using . vector-sizedO(1) Modify the element at a given # position without bounds checking. vector-sizedO(1)7 Swap the elements at a given type-safe position using s. vector-sizedO(1) Swap the elements at a given # position without bounds checking. vector-sizedO(1)V Replace the element at a given type-safe position and return the old element, using .  vector-sizedO(1)V Replace the element at a given type-safe position and return the old element, using .! vector-sizedO(1) Replace the element at a given F position and return the old element. No bounds checks are performed." vector-sizedWCompute the next (lexicographically) permutation of a given vector in-place. Returns ( when the input is the last permutation.# vector-sized2Set all elements of the vector to the given value.$ vector-sized/Copy a vector. The two vectors may not overlap.% vector-sizedDCopy a vector. The two vectors may not overlap. This is not checked.& vector-sizedZMove the contents of a vector. If the two vectors do not overlap, this is equivalent to $. Otherwise, the copying is performed as if the source vector were copied to a temporary vector and then the temporary vector was copied to the target vector.' vector-sized Convert a    into a  7 if it has the correct size, otherwise return Nothing.-Note that this does no copying; the returned  is a reference to the exact same vector in memory as the given one, and any modifications to it are also reflected in the given   .( vector-sizedTakes a  ) and returns a continuation providing a  with a size parameter nH that is determined at runtime based on the length of the input vector.Essentially converts a   into a  " with the correct size parameter n.-Note that this does no copying; the returned  is a reference to the exact same vector in memory as the given one, and any modifications to it are also reflected in the given  .) vector-sized Convert a   into a   ..Note that this does no copying; the returned    is a reference to the exact same vector in memory as the given one, and any modifications to it are also reflected in the given . vector-sizedstarting index vector-sizedstarting index vector-sizedlength$ vector-sizedtarget vector-sizedsource% vector-sizedtarget vector-sizedsource& vector-sizedtarget vector-sizedsource/      !"#$%&'()/      !"#$&%'()None -;<=QSTVE* vector-sized specialized to use + vector-sizedO(1)& Yield the length of the vector as an . This is more like  than   , extracting the value from the 0 instance and not looking at the vector itself., vector-sizedO(1)% Yield the length of the vector as a . This function doesn't doW anything; it merely allows the size parameter of the vector to be passed around as a .- vector-sizedO(1) Reveal a 8 instance for a vector's length, determined at runtime.. vector-sizedO(1) Reveal a  instance and / for a vector's length, determined at runtime./ vector-sizedO(1) Safe indexing using a .0 vector-sizedO(1) Safe indexing using a .1 vector-sizedO(1)/ Indexing using an Int without bounds checking.2 vector-sizedO(1)/ Yield the first element of a non-empty vector.3 vector-sizedO(1). Yield the last element of a non-empty vector.4 vector-sizedLens to access (O(1)) and update (O(n)$) an arbitrary element by its index.5 vector-sizedLens to access (O(1)) and update (O(n)*) the first element of a non-empty vector.6 vector-sizedLens to access (O(1)) and update (O(n))) the last element of a non-empty vector.7 vector-sizedO(1)5 Safe indexing in a monad. See the documentation for + for an explanation of why this is useful.8 vector-sizedO(1)" Safe indexing in a monad using a . See the documentation for * for an explanation of why this is useful.9 vector-sizedO(1)K Indexing using an Int without bounds checking. See the documentation for * for an explanation of why this is useful.: vector-sizedO(1)V Yield the first element of a non-empty vector in a monad. See the documentation for * for an explanation of why this is useful.; vector-sizedO(1)U Yield the last element of a non-empty vector in a monad. See the documentation for * for an explanation of why this is useful.< vector-sizedO(1)R Yield a slice of the vector without copying it with an inferred length argument.= vector-sizedO(1)R Yield a slice of the vector without copying it with an explicit length argument.> vector-sizedO(1)G Yield all but the last element of a non-empty vector without copying.? vector-sizedO(1)H Yield all but the first element of a non-empty vector without copying.@ vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is inferred from the type.A vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is given explicitly as a  argument.B vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is inferred from the type.C vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is givel explicitly as a  argument.D vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The lengths of the resultant vector are inferred from the type.E vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The length of the first resultant vector is passed explicitly as a  argument.F vector-sizedO(1) Empty vector.G vector-sizedO(1)! Vector with exactly one element.H vector-sizedO(n) Construct a vector in a type safe manner fromTuple (1,2) :: Vector 2 Int fromTuple ("hey", "what's", "going", "on") :: Vector 4 StringI vector-sizedO(n)g Construct a vector with the same element in each position where the length is inferred from the type.J vector-sizedO(n)f Construct a vector with the same element in each position where the length is given explicitly as a  argument.K vector-sizedO(n){ construct a vector of the given length by applying the function to each index where the length is inferred from the type.L vector-sizedO(n)z construct a vector of the given length by applying the function to each index where the length is given explicitly as a  argument.M vector-sizedO(n)j Apply function n times to value. Zeroth element is original value. The length is inferred from the type.N vector-sizedO(n)i Apply function n times to value. Zeroth element is original value. The length is given explicitly as a  argument.O vector-sizedO(n) Execute the monadic action n0 times and store the results in a vector where n is inferred from the type.P vector-sizedO(n) Execute the monadic action n0 times and store the results in a vector where n is given explicitly as a  argument.Q vector-sizedO(n) Construct a vector of length nQ by applying the monadic action to each index where n is inferred from the type.R vector-sizedO(n) Construct a vector of length nP by applying the monadic action to each index where n is given explicitly as a  argument.S vector-sizedO(n)! Construct a vector with exactly nT elements by repeatedly applying the generator function to the a seed. The length, n, is inferred from the type.T vector-sizedO(n)! Construct a vector with exactly nT elements by repeatedly applying the generator function to the a seed. The length, n, is given explicitly as a  argument.U vector-sizedO(n) Yield a vector of length n containing the values x, x+1 etc. The length, n, is inferred from the type.V vector-sizedO(n) Yield a vector of length n containing the values x, x+1 etc. The length, n, is given explicitly as a  argument.W vector-sizedO(n): Yield a vector of the given length containing the values x, x+y, x+y+y etc. The length, n, is inferred from the type.X vector-sizedO(n): Yield a vector of the given length containing the values x, x+y, x+y+y etc. The length, n, is given explicitly as a  argument.Y vector-sizedO(n) Prepend an element.Z vector-sizedO(n) Append an element.[ vector-sizedO(m+n) Concatenate two vectors.\ vector-sizedO(n)Y Yield the argument but force it not to retain any extra memory, possibly by copying it.@This is especially useful when dealing with slices. For example: force (slice 0 2 <huge vector>)Here, the slice retains a reference to the huge vector. Forcing it creates a copy of just the elements that belong to the slice and allows the huge vector to be garbage collected.] vector-sizedO(m+n) For each pair (i,a)8 from the list, replace the vector element at position i by a. ,<5,9,2,7> // [(2,1),(0,3),(2,8)] = <3,9,8,7>^ vector-sizedO(m+n) For each pair (i,a)O from the vector of index/value pairs, replace the vector element at position i by a. 0update <5,9,2,7> <(2,1),(0,3),(2,8)> = <3,9,8,7>_ vector-sizedO(m+n) For each index i4 from the index vector and the corresponding value aO from the value vector, replace the element of the initial vector at position i by a. .update_ <5,9,2,7> <2,0,2> <1,3,8> = <3,9,8,7>)This function is useful for instances of *& that cannot store pairs. Otherwise, ^ is probably more convenient. update_ xs is ys = ^ xs ( is ys) ` vector-sized Same as (]) but without bounds checking.a vector-sizedSame as ^ but without bounds checking.b vector-sizedSame as _ but without bounds checking.c vector-sizedO(m+n) For each pair (i,b), from the list, replace the vector element a at position i by f a b. ?accum (+) <5,9,2> [(2,4),(1,6),(0,3),(1,7)] = <5+3, 9+6+7, 2+4>d vector-sizedO(m+n) For each pair (i,b)7 from the vector of pairs, replace the vector element a at position i by f a b. Daccumulate (+) <5,9,2> <(2,4),(1,6),(0,3),(1,7)> = <5+3, 9+6+7, 2+4>e vector-sizedO(m+n) For each index i4 from the index vector and the corresponding value bT from the the value vector, replace the element of the initial vector at position i by f a b. ?accumulate_ (+) <5,9,2> <2,1,0,1> <4,6,3,7> = <5+3, 9+6+7, 2+4>)This function is useful for instances of *& that cannot store pairs. Otherwise, d is probably more convenient: accumulate_ f as is bs = d f as ( is bs) f vector-sizedSame as c but without bounds checking.g vector-sizedSame as d but without bounds checking.h vector-sizedSame as e but without bounds checking.i vector-sizedO(n) Reverse a vectorj vector-sizedO(n)5 Yield the vector obtained by replacing each element i of the index vector by xs!i. This is equivalent to m (xs!) is# but is often much more efficient. 3backpermute <a,b,c,d> <0,3,2,3,1,0> = <a,d,c,d,b,a>k vector-sizedSame as j but without bounds checking.l vector-sizedO(n)- Pair each element in a vector with its indexm vector-sizedO(n) Map a function over a vectorn vector-sizedO(n)< Apply a function to every element of a vector and its indexo vector-sizedO(n*m)} Map a function over a vector and concatenate the results. The function is required to always return the same length vector.p vector-sizedO(n)V Apply the monadic action to all elements of the vector, yielding a vector of resultsq vector-sizedO(n)c Apply the monadic action to every element of a vector and its index, yielding a vector of resultsr vector-sizedO(n)M Apply the monadic action to all elements of a vector and ignore the resultss vector-sizedO(n)[ Apply the monadic action to every element of a vector and its index, ignoring the resultst vector-sizedO(n)e Apply the monadic action to all elements of the vector, yielding a vector of results. Equvalent to flip p.u vector-sizedO(n)] Apply the monadic action to all elements of a vector and ignore the results. Equivalent to flip r.v vector-sizedO(n)< Zip two vectors of the same length with the given function.w vector-sized*Zip three vectors with the given function.{ vector-sizedO(n)\ Zip two vectors of the same length with a function that also takes the elements' indices). vector-sizedO(n)# Zip two vectors of the same length vector-sizedO(n)^ Zip the two vectors of the same length with the monadic action and yield a vector of results vector-sizedO(n)k Zip the two vectors with a monadic action that also takes the element index and yield a vector of results vector-sizedO(n)C Zip the two vectors with the monadic action and ignore the results vector-sizedO(n)d Zip the two vectors with a monadic action that also takes the element index and ignore the results vector-sized O(min(m,n)) Unzip a vector of pairs. vector-sizedO(n)( Check if the vector contains an element vector-sizedO(n)= Check if the vector does not contain an element (inverse of ) vector-sizedO(n) Yield - the first element matching the predicate or  if no such element exists. vector-sizedO(n) Yield ; the index of the first element matching the predicate or  if no such element exists. vector-sizedO(n) Yield ; the index of the first occurence of the given element or O if the vector does not contain the element. This is a specialised version of . vector-sizedO(n) Left fold vector-sizedO(n) Left fold on non-empty vectors vector-sizedO(n)" Left fold with strict accumulator vector-sizedO(n)7 Left fold on non-empty vectors with strict accumulator vector-sizedO(n) Right fold vector-sizedO(n) Right fold on non-empty vectors vector-sizedO(n)% Right fold with a strict accumulator vector-sizedO(n)8 Right fold on non-empty vectors with strict accumulator vector-sizedO(n); Left fold (function applied to each element and its index) vector-sizedO(n)T Left fold with strict accumulator (function applied to each element and its index) vector-sizedO(n)< Right fold (function applied to each element and its index) vector-sizedO(n)U Right fold with strict accumulator (function applied to each element and its index) vector-sizedO(n)- Check if all elements satisfy the predicate. vector-sizedO(n). Check if any element satisfies the predicate. vector-sizedO(n) Check if all elements are  vector-sizedO(n) Check if any element is  vector-sizedO(n) Compute the sum of the elements vector-sizedO(n)$ Compute the produce of the elements vector-sizedO(n)3 Yield the maximum element of the non-empty vector. vector-sizedO(n)_ Yield the maximum element of the non-empty vector according to the given comparison function. vector-sizedO(n)3 Yield the minimum element of the non-empty vector. vector-sizedO(n)_ Yield the minimum element of the non-empty vector according to the given comparison function. vector-sizedO(n)@ Yield the index of the maximum element of the non-empty vector. vector-sizedO(n)l Yield the index of the maximum element of the non-empty vector according to the given comparison function. vector-sizedO(n)@ Yield the index of the minimum element of the non-empty vector. vector-sizedO(n)l Yield the index of the minimum element of the non-empty vector according to the given comparison function. vector-sizedO(n) Monadic fold vector-sizedO(n)< Monadic fold (action applied to each element and its index) vector-sizedO(n)$ Monadic fold over non-empty vectors vector-sizedO(n)% Monadic fold with strict accumulator vector-sizedO(n)U Monadic fold with strict accumulator (action applied to each element and its index) vector-sizedO(n)< Monadic fold over non-empty vectors with strict accumulator vector-sizedO(n)& Monadic fold that discards the result vector-sizedO(n)V Monadic fold that discards the result (action applied to each element and its index) vector-sizedO(n)= Monadic fold over non-empty vectors that discards the result vector-sizedO(n)> Monadic fold with strict accumulator that discards the result vector-sizedO(n)n Monadic fold with strict accumulator that discards the result (action applied to each element and its index) vector-sizedO(n)T Monad fold over non-empty vectors with strict accumulator that discards the result vector-sized,Evaluate each action and collect the results vector-sized,Evaluate each action and discard the results vector-sizedO(n) Prescan prescanl f z = > .  f z  Example: $prescanl (+) 0 <1,2,3,4> = <0,1,3,6> vector-sizedO(n) Prescan with strict accumulator vector-sizedO(n) Scan vector-sizedO(n) Scan with strict accumulator vector-sizedO(n) Haskell-style scan vector-sizedO(n)+ Haskell-style scan with strict accumulator vector-sizedO(n) Scan over a non-empty vector vector-sizedO(n)7 Scan over a non-empty vector with a strict accumulator vector-sizedO(n) Right-to-left prescan vector-sizedO(n). Right-to-left prescan with strict accumulator vector-sizedO(n) Right-to-left scan vector-sizedO(n)+ Right-to-left scan with strict accumulator vector-sizedO(n)! Right-to-left Haskell-style scan vector-sizedO(n)9 Right-to-left Haskell-style scan with strict accumulator vector-sizedO(n)+ Right-to-left scan over a non-empty vector vector-sizedO(n)F Right-to-left scan over a non-empty vector with a strict accumulator vector-sizedO(n) Convert a vector to a list vector-sizedO(n) Convert a list to a vector vector-sizedO(n) Convert the first n_ elements of a list to a vector. The length of the resultant vector is inferred from the type. vector-sizedO(n) Convert the first n^ elements of a list to a vector. The length of the resultant vector is given explicitly as a  argument. vector-sizedO(n){ Takes a list and returns a continuation providing a vector with a size parameter corresponding to the length of the list.aEssentially converts a list into a vector with the proper size parameter, determined at runtime.See  vector-sizedO(n)/ Yield an immutable copy of the mutable vector. vector-sizedO(1) Unsafely convert a mutable vector to an immutable one withouy copying. The mutable vector may not be used after this operation. vector-sizedO(n). Yield a mutable copy of the immutable vector. vector-sizedO(n) Unsafely convert an immutable vector to a mutable one without copying. The immutable vector may not be used after this operation. vector-sizedO(n)- Copy an immutable vector into a mutable one. vector-sized Convert a   into a 7 if it has the correct size, otherwise return Nothing. vector-sizedTakes a  ) and returns a continuation providing a * with a size parameter nH that is determined at runtime based on the length of the input vector.Essentially converts a   into a *" with the correct size parameter n. vector-sizedApply a function on unsized vectors to a sized vector. The function must preserve the size of the vector, this is not checked.- vector-sized-a vector of some (potentially unknown) length vector-sized3a value that depends on knowing the vector's length vector-sized"the value computed with the length. vector-sized-a vector of some (potentially unknown) length vector-sizedIa value that depends on knowing the vector's length, which is given as a  vector-sized"the value computed with the length< vector-sizedstarting index= vector-sizedstarting index vector-sizedlength] vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n)^ vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n)_ vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n)` vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n)a vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n)b vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n)c vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n)d vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n)e vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n)f vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n)g vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n)h vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n)j vector-sizedxs value vector vector-sizedis index vector (of length n)k vector-sizedxs value vector vector-sizedis index vector (of length n)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ذ*+,-./0123789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk456lmnopqrstuvwxyz{|}~44None-<QSTV/ vector-sized specialized to use  vector-sizedO(1). Yield the length of the mutable vector as an . vector-sizedO(1)- Yield the length of the mutable vector as a . vector-sizedO(1)* Check whether the mutable vector is empty vector-sizedO(1)Z Yield a slice of the mutable vector without copying it with an inferred length argument. vector-sizedO(1)Z Yield a slice of the mutable vector without copying it with an explicit length argument. vector-sizedO(1)O Yield all but the last element of a non-empty mutable vector without copying. vector-sizedO(1)P Yield all but the first element of a non-empty mutable vector without copying. vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is inferred from the type. vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is given explicitly as a  argument. vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is inferred from the type. vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is givel explicitly as a  argument. vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The lengths of the resultant vector are inferred from the type. vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The length of the first resultant vector is passed explicitly as a  argument. vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is inferred from the type. vector-sizedCCreate a mutable vector where the length is inferred from the type. vector-sizedcCreate a mutable vector where the length is inferred from the type. The memory is not initialized. vector-sizedfCreate a mutable vector where the length is inferred from the type and fill it with an initial value. vector-sizedCCreate a mutable vector where the length is given explicitly as a , argument and fill it with an initial value. vector-sizedCreate a mutable vector where the length is inferred from the type and fill it with values produced by repeatedly executing the monadic action. vector-sizedCCreate a mutable vector where the length is given explicitly as a W argument and fill it with values produced by repeatedly executing the monadic action. vector-sized"Create a copy of a mutable vector. vector-sized9Grow a mutable vector by an amount given explicitly as a  argument. vector-sizedKGrow a mutable vector (from the front) by an amount given explicitly as a  argument. vector-sizedgReset all elements of the vector to some undefined value, clearing all references to external objects. vector-sizedO(1)7 Yield the element at a given type-safe position using . vector-sizedO(1)7 Yield the element at a given type-safe position using . vector-sizedO(1) Yield the element at a given # position without bounds checking. vector-sizedO(1)9 Replace the element at a given type-safe position using . vector-sizedO(1)9 Replace the element at a given type-safe position using . vector-sizedO(1) Replace the element at a given # position without bounds checking. vector-sizedO(1)8 Modify the element at a given type-safe position using . vector-sizedO(1)8 Modify the element at a given type-safe position using . vector-sizedO(1) Modify the element at a given # position without bounds checking. vector-sizedO(1)7 Swap the elements at a given type-safe position using s. vector-sizedO(1) Swap the elements at a given # position without bounds checking. vector-sizedO(1)V Replace the element at a given type-safe position and return the old element, using . vector-sizedO(1)V Replace the element at a given type-safe position and return the old element, using . vector-sizedO(1) Replace the element at a given F position and return the old element. No bounds checks are performed. vector-sizedWCompute the next (lexicographically) permutation of a given vector in-place. Returns ( when the input is the last permutation. vector-sized2Set all elements of the vector to the given value. vector-sized/Copy a vector. The two vectors may not overlap. vector-sizedDCopy a vector. The two vectors may not overlap. This is not checked. vector-sizedZMove the contents of a vector. If the two vectors do not overlap, this is equivalent to . Otherwise, the copying is performed as if the source vector were copied to a temporary vector and then the temporary vector was copied to the target vector. vector-sized Convert a   into a 7 if it has the correct size, otherwise return Nothing.-Note that this does no copying; the returned  is a reference to the exact same vector in memory as the given one, and any modifications to it are also reflected in the given  . vector-sizedTakes a  ) and returns a continuation providing a  with a size parameter nH that is determined at runtime based on the length of the input vector.Essentially converts a   into a  " with the correct size parameter n.-Note that this does no copying; the returned  is a reference to the exact same vector in memory as the given one, and any modifications to it are also reflected in the given  . vector-sized Convert a  into a  ..Note that this does no copying; the returned   is a reference to the exact same vector in memory as the given one, and any modifications to it are also reflected in the given . vector-sizedstarting index vector-sizedstarting index vector-sizedlength vector-sizedtarget vector-sizedsource vector-sizedtarget vector-sizedsource vector-sizedtarget vector-sizedsource//None -;<=FQSTV΍ vector-sized specialized to use    vector-sizedO(1)& Yield the length of the vector as an . This is more like  than   , extracting the value from the 0 instance and not looking at the vector itself.  vector-sizedO(1)% Yield the length of the vector as a . This function doesn't doW anything; it merely allows the size parameter of the vector to be passed around as a .  vector-sizedO(1) Reveal a 8 instance for a vector's length, determined at runtime.  vector-sizedO(1) Reveal a  instance and / for a vector's length, determined at runtime.  vector-sizedO(1) Safe indexing using a . vector-sizedO(1) Safe indexing using a . vector-sizedO(1)/ Indexing using an Int without bounds checking. vector-sizedO(1)/ Yield the first element of a non-empty vector. vector-sizedO(1). Yield the last element of a non-empty vector. vector-sizedLens to access (O(1)) and update (O(n)$) an arbitrary element by its index. vector-sizedLens to access (O(1)) and update (O(n)*) the first element of a non-empty vector. vector-sizedLens to access (O(1)) and update (O(n))) the last element of a non-empty vector. vector-sizedO(1)5 Safe indexing in a monad. See the documentation for + for an explanation of why this is useful. vector-sizedO(1)" Safe indexing in a monad using a . See the documentation for * for an explanation of why this is useful. vector-sizedO(1)K Indexing using an Int without bounds checking. See the documentation for * for an explanation of why this is useful. vector-sizedO(1)V Yield the first element of a non-empty vector in a monad. See the documentation for * for an explanation of why this is useful. vector-sizedO(1)U Yield the last element of a non-empty vector in a monad. See the documentation for * for an explanation of why this is useful. vector-sizedO(1)R Yield a slice of the vector without copying it with an inferred length argument. vector-sizedO(1)R Yield a slice of the vector without copying it with an explicit length argument. vector-sizedO(1)G Yield all but the last element of a non-empty vector without copying. vector-sizedO(1)H Yield all but the first element of a non-empty vector without copying. vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is inferred from the type. vector-sizedO(1) Yield the first n elements. The resultant vector always contains this many elements. The length of the resultant vector is given explicitly as a  argument.  vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is inferred from the type.! vector-sizedO(1) Yield all but the the first n elements. The given vector must contain at least this many elements The length of the resultant vector is givel explicitly as a  argument." vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The lengths of the resultant vector are inferred from the type.# vector-sizedO(1) Yield the first n elements paired with the remainder without copying. The length of the first resultant vector is passed explicitly as a  argument.$ vector-sizedO(1) Empty vector.% vector-sizedO(1)! Vector with exactly one element.& vector-sizedO(n) Construct a vector in a type safe manner fromTuple (1,2) :: Vector 2 Int fromTuple ("hey", "what's", "going", "on") :: Vector 4 String' vector-sizedO(n)g Construct a vector with the same element in each position where the length is inferred from the type.( vector-sizedO(n)f Construct a vector with the same element in each position where the length is given explicitly as a  argument.) vector-sizedO(n){ construct a vector of the given length by applying the function to each index where the length is inferred from the type.* vector-sizedO(n)z construct a vector of the given length by applying the function to each index where the length is given explicitly as a  argument.+ vector-sizedO(n)j Apply function n times to value. Zeroth element is original value. The length is inferred from the type., vector-sizedO(n)i Apply function n times to value. Zeroth element is original value. The length is given explicitly as a  argument.- vector-sizedO(n) Execute the monadic action n0 times and store the results in a vector where n is inferred from the type.. vector-sizedO(n) Execute the monadic action n0 times and store the results in a vector where n is given explicitly as a  argument./ vector-sizedO(n) Construct a vector of length nQ by applying the monadic action to each index where n is inferred from the type.0 vector-sizedO(n) Construct a vector of length nP by applying the monadic action to each index where n is given explicitly as a  argument.1 vector-sizedO(n)! Construct a vector with exactly nT elements by repeatedly applying the generator function to the a seed. The length, n, is inferred from the type.2 vector-sizedO(n)! Construct a vector with exactly nT elements by repeatedly applying the generator function to the a seed. The length, n, is given explicitly as a  argument.3 vector-sizedO(n) Yield a vector of length n containing the values x, x+1 etc. The length, n, is inferred from the type.4 vector-sizedO(n) Yield a vector of length n containing the values x, x+1 etc. The length, n, is given explicitly as a  argument.5 vector-sizedO(n): Yield a vector of the given length containing the values x, x+y, x+y+y etc. The length, n, is inferred from the type.6 vector-sizedO(n): Yield a vector of the given length containing the values x, x+y, x+y+y etc. The length, n, is given explicitly as a  argument.7 vector-sizedO(n) Prepend an element.8 vector-sizedO(n) Append an element.9 vector-sizedO(m+n) Concatenate two vectors.: vector-sizedO(n)Y Yield the argument but force it not to retain any extra memory, possibly by copying it.@This is especially useful when dealing with slices. For example: force (slice 0 2 <huge vector>)Here, the slice retains a reference to the huge vector. Forcing it creates a copy of just the elements that belong to the slice and allows the huge vector to be garbage collected.; vector-sizedO(m+n) For each pair (i,a)8 from the list, replace the vector element at position i by a. ,<5,9,2,7> // [(2,1),(0,3),(2,8)] = <3,9,8,7>< vector-sizedO(m+n) For each pair (i,a)O from the vector of index/value pairs, replace the vector element at position i by a. 0update <5,9,2,7> <(2,1),(0,3),(2,8)> = <3,9,8,7>= vector-sizedO(m+n) For each index i4 from the index vector and the corresponding value aO from the value vector, replace the element of the initial vector at position i by a. .update_ <5,9,2,7> <2,0,2> <1,3,8> = <3,9,8,7>)This function is useful for instances of & that cannot store pairs. Otherwise, < is probably more convenient. update_ xs is ys = < xs (^ is ys) > vector-sized Same as (;) but without bounds checking.? vector-sizedSame as < but without bounds checking.@ vector-sizedSame as = but without bounds checking.A vector-sizedO(m+n) For each pair (i,b), from the list, replace the vector element a at position i by f a b. ?accum (+) <5,9,2> [(2,4),(1,6),(0,3),(1,7)] = <5+3, 9+6+7, 2+4>B vector-sizedO(m+n) For each pair (i,b)7 from the vector of pairs, replace the vector element a at position i by f a b. Daccumulate (+) <5,9,2> <(2,4),(1,6),(0,3),(1,7)> = <5+3, 9+6+7, 2+4>C vector-sizedO(m+n) For each index i4 from the index vector and the corresponding value bT from the the value vector, replace the element of the initial vector at position i by f a b. ?accumulate_ (+) <5,9,2> <2,1,0,1> <4,6,3,7> = <5+3, 9+6+7, 2+4>)This function is useful for instances of & that cannot store pairs. Otherwise, B is probably more convenient: accumulate_ f as is bs = B f as (^ is bs) D vector-sizedSame as A but without bounds checking.E vector-sizedSame as B but without bounds checking.F vector-sizedSame as C but without bounds checking.G vector-sizedO(n) Reverse a vectorH vector-sizedO(n)5 Yield the vector obtained by replacing each element i of the index vector by xs!i. This is equivalent to K (xs!) is# but is often much more efficient. 3backpermute <a,b,c,d> <0,3,2,3,1,0> = <a,d,c,d,b,a>I vector-sizedSame as H but without bounds checking.J vector-sizedO(n)- Pair each element in a vector with its indexK vector-sizedO(n) Map a function over a vectorL vector-sizedO(n)< Apply a function to every element of a vector and its indexM vector-sizedO(n*m)} Map a function over a vector and concatenate the results. The function is required to always return the same length vector.N vector-sizedO(n)V Apply the monadic action to all elements of the vector, yielding a vector of resultsO vector-sizedO(n)c Apply the monadic action to every element of a vector and its index, yielding a vector of resultsP vector-sizedO(n)M Apply the monadic action to all elements of a vector and ignore the resultsQ vector-sizedO(n)[ Apply the monadic action to every element of a vector and its index, ignoring the resultsR vector-sizedO(n)e Apply the monadic action to all elements of the vector, yielding a vector of results. Equvalent to flip N.S vector-sizedO(n)] Apply the monadic action to all elements of a vector and ignore the results. Equivalent to flip P.T vector-sizedO(n)< Zip two vectors of the same length with the given function.U vector-sized*Zip three vectors with the given function.Y vector-sizedO(n)\ Zip two vectors of the same length with a function that also takes the elements' indices).^ vector-sizedO(n)# Zip two vectors of the same lengthc vector-sizedO(n)^ Zip the two vectors of the same length with the monadic action and yield a vector of resultsd vector-sizedO(n)k Zip the two vectors with a monadic action that also takes the element index and yield a vector of resultse vector-sizedO(n)C Zip the two vectors with the monadic action and ignore the resultsf vector-sizedO(n)d Zip the two vectors with a monadic action that also takes the element index and ignore the resultsg vector-sized O(min(m,n)) Unzip a vector of pairs.l vector-sizedO(n)( Check if the vector contains an elementm vector-sizedO(n)= Check if the vector does not contain an element (inverse of l)n vector-sizedO(n) Yield - the first element matching the predicate or  if no such element exists.o vector-sizedO(n) Yield ; the index of the first element matching the predicate or  if no such element exists.p vector-sizedO(n) Yield ; the index of the first occurence of the given element or O if the vector does not contain the element. This is a specialised version of o.q vector-sizedO(n) Left foldr vector-sizedO(n) Left fold on non-empty vectorss vector-sizedO(n)" Left fold with strict accumulatort vector-sizedO(n)7 Left fold on non-empty vectors with strict accumulatoru vector-sizedO(n) Right foldv vector-sizedO(n) Right fold on non-empty vectorsw vector-sizedO(n)% Right fold with a strict accumulatorx vector-sizedO(n)8 Right fold on non-empty vectors with strict accumulatory vector-sizedO(n); Left fold (function applied to each element and its index)z vector-sizedO(n)T Left fold with strict accumulator (function applied to each element and its index){ vector-sizedO(n)< Right fold (function applied to each element and its index)| vector-sizedO(n)U Right fold with strict accumulator (function applied to each element and its index)} vector-sizedO(n)- Check if all elements satisfy the predicate.~ vector-sizedO(n). Check if any element satisfies the predicate. vector-sizedO(n) Check if all elements are  vector-sizedO(n) Check if any element is  vector-sizedO(n) Compute the sum of the elements vector-sizedO(n)$ Compute the produce of the elements vector-sizedO(n)3 Yield the maximum element of the non-empty vector. vector-sizedO(n)_ Yield the maximum element of the non-empty vector according to the given comparison function. vector-sizedO(n)3 Yield the minimum element of the non-empty vector. vector-sizedO(n)_ Yield the minimum element of the non-empty vector according to the given comparison function. vector-sizedO(n)@ Yield the index of the maximum element of the non-empty vector. vector-sizedO(n)l Yield the index of the maximum element of the non-empty vector according to the given comparison function. vector-sizedO(n)@ Yield the index of the minimum element of the non-empty vector. vector-sizedO(n)l Yield the index of the minimum element of the non-empty vector according to the given comparison function. vector-sizedO(n) Monadic fold vector-sizedO(n)< Monadic fold (action applied to each element and its index) vector-sizedO(n)$ Monadic fold over non-empty vectors vector-sizedO(n)% Monadic fold with strict accumulator vector-sizedO(n)U Monadic fold with strict accumulator (action applied to each element and its index) vector-sizedO(n)< Monadic fold over non-empty vectors with strict accumulator vector-sizedO(n)& Monadic fold that discards the result vector-sizedO(n)V Monadic fold that discards the result (action applied to each element and its index) vector-sizedO(n)= Monadic fold over non-empty vectors that discards the result vector-sizedO(n)> Monadic fold with strict accumulator that discards the result vector-sizedO(n)n Monadic fold with strict accumulator that discards the result (action applied to each element and its index) vector-sizedO(n)T Monad fold over non-empty vectors with strict accumulator that discards the result vector-sized,Evaluate each action and collect the results vector-sized,Evaluate each action and discard the results vector-sizedO(n) Prescan prescanl f z =  .  f z  Example: $prescanl (+) 0 <1,2,3,4> = <0,1,3,6> vector-sizedO(n) Prescan with strict accumulator vector-sizedO(n) Scan vector-sizedO(n) Scan with strict accumulator vector-sizedO(n) Haskell-style scan vector-sizedO(n)+ Haskell-style scan with strict accumulator vector-sizedO(n) Scan over a non-empty vector vector-sizedO(n)7 Scan over a non-empty vector with a strict accumulator vector-sizedO(n) Right-to-left prescan vector-sizedO(n). Right-to-left prescan with strict accumulator vector-sizedO(n) Right-to-left scan vector-sizedO(n)+ Right-to-left scan with strict accumulator vector-sizedO(n)! Right-to-left Haskell-style scan vector-sizedO(n)9 Right-to-left Haskell-style scan with strict accumulator vector-sizedO(n)+ Right-to-left scan over a non-empty vector vector-sizedO(n)F Right-to-left scan over a non-empty vector with a strict accumulator vector-sizedO(n) Convert a vector to a list vector-sizedO(n) Convert a list to a vector vector-sizedO(n) Convert the first n_ elements of a list to a vector. The length of the resultant vector is inferred from the type. vector-sizedO(n) Convert the first n^ elements of a list to a vector. The length of the resultant vector is given explicitly as a  argument. vector-sizedO(n){ Takes a list and returns a continuation providing a vector with a size parameter corresponding to the length of the list.aEssentially converts a list into a vector with the proper size parameter, determined at runtime.See  vector-sizedO(n)/ Yield an immutable copy of the mutable vector. vector-sizedO(1) Unsafely convert a mutable vector to an immutable one withouy copying. The mutable vector may not be used after this operation. vector-sizedO(n). Yield a mutable copy of the immutable vector. vector-sizedO(n) Unsafely convert an immutable vector to a mutable one without copying. The immutable vector may not be used after this operation. vector-sizedO(n)- Copy an immutable vector into a mutable one. vector-sized Convert a   into a 7 if it has the correct size, otherwise return Nothing. vector-sizedTakes a ) and returns a continuation providing a  with a size parameter nH that is determined at runtime based on the length of the input vector.Essentially converts a  into a " with the correct size parameter n. vector-sizedApply a function on unsized vectors to a sized vector. The function must preserve the size of the vector, this is not checked.  vector-sized-a vector of some (potentially unknown) length vector-sized3a value that depends on knowing the vector's length vector-sized"the value computed with the length  vector-sized-a vector of some (potentially unknown) length vector-sizedIa value that depends on knowing the vector's length, which is given as a  vector-sized"the value computed with the length vector-sizedstarting index vector-sizedstarting index vector-sizedlength; vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n)< vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n)= vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n)> vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n)? vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n)@ vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n)A vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n)B vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n)C vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n)D vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized%list of index/value pairs (of length n)E vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sized'vector of index/value pairs (of length n)F vector-sizedaccumulating function f vector-sizedinitial vector (of length m) vector-sizedindex vector (of length n) vector-sizedvalue vector (of length n)H vector-sizedxs value vector vector-sizedis index vector (of length n)I vector-sizedxs value vector vector-sizedis index vector (of length n)      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~l4m4    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV WXYZ[\]^_`abcd !"#$%&'()efg-.hijk/0lmnopqrstuvwxyz{|}~EHIJ   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ WXYZ[\]^_`abcd !"#$%&'()efg-.hijk/0lmnopqrstuvwxyz{|}~EHIJ   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ WXYZ[\]^_`abcd !"#$%&'()efg-.hijk/0lmnopqrstuvwxyz{|}~EHIJ          +vector-sized-1.0.3.1-CErypuaONQcKrNfwbT2HVr!Data.Vector.Generic.Mutable.Sized*Data.Vector.Generic.Mutable.Sized.InternalData.Vector.Generic.Sized"Data.Vector.Generic.Sized.InternalData.Vector.Mutable.SizedData.Vector.Sized"Data.Vector.Storable.Mutable.SizedData.Vector.Storable.SizedData.Vector.Generic.MutableMVector Data.VectorlengthData.Vector.GenericVectorSizedControl.ApplicativeZipListData.Vector.StorableMutableData.Vector.MutableDataVGindexMData.Vector.Storable.MutableStorable$fGenericMVector $fDataMVector$fStorableMVector$fNFDataMVectorlength'nullsliceslice'inittailtaketake'dropdrop'splitAtsplitAt'overlapsnew unsafeNew replicate replicate' replicateM replicateM'clonegrow growFrontclearreadread' unsafeReadwritewrite' unsafeWritemodifymodify' unsafeModifyswap unsafeSwapexchange exchange'unsafeExchangenextPermutationsetcopy unsafeCopymovetoSized withSized fromSized $fShowVector $fEqVector $fOrdVector$fFunctorVector$fFoldableVector$fTraversableVector$fNFDataVector$fGenericVector $fShow1Vector $fEq1Vector $fOrd1Vector $fDataVector knownLength knownLength'indexindex' unsafeIndexheadlastix_head_lastindexM' unsafeIndexMheadMlastMempty singleton fromTuplegenerate generate'iterateN iterateN' generateM generateM'unfoldrN unfoldrN' enumFromN enumFromN' enumFromStepNenumFromStepN'conssnoc++force//updateupdate_ unsafeUpd unsafeUpdate unsafeUpdate_accum accumulate accumulate_ unsafeAccumunsafeAccumulateunsafeAccumulate_reverse backpermuteunsafeBackpermuteindexedmapimap concatMapmapMimapMmapM_imapM_forMforM_zipWithzipWith3zipWith4zipWith5zipWith6izipWith izipWith3 izipWith4 izipWith5 izipWith6zipzip3zip4zip5zip6zipWithM izipWithM zipWithM_ izipWithM_unzipunzip3unzip4unzip5unzip6elemnotElemfind findIndex elemIndexfoldlfoldl1foldl'foldl1'foldrfoldr1foldr'foldr1'ifoldlifoldl'ifoldrifoldr'allanyandorsumproductmaximum maximumByminimum minimumBymaxIndex maxIndexByminIndex minIndexByfoldMifoldMfold1MfoldM'ifoldM'fold1M'foldM_ifoldM_fold1M_foldM'_ifoldM'_fold1M'_sequence sequence_prescanl prescanl' postscanl postscanl'scanlscanl'scanl1scanl1'prescanr prescanr' postscanr postscanr'scanrscanr'scanr1scanr1'toListfromList fromListN fromListN' withSizedListconvertfreeze unsafeFreezethaw unsafeThawwithVectorUnsafe$fFloatingVector$fFractionalVector $fNumVector$fRepresentableVector$fDistributiveVector$fMonoidVector$fSemigroupVector$fApplicativeVector$fStorableVector $fReadVectorghc-prim GHC.TypesIntbase Data.ProxyProxy.finite-typelits-0.1.4.0-Aj8bckdKR7cIUptc9j27WRData.Finite.InternalFiniteFalse GHC.TypeLitsnatVal GHC.TypeNatsKnownNat&vector-0.12.0.1-GC2xzdMF0QQGz7ZCcRBJRLGHC.BaseJustNothingTrueMonoidmempty Semigroup Applicative