!`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_None =?FHSVX\ contiguousThe F typeclass as an interface to a multitude of contiguous structures. contiguous%The Mutable counterpart to the array. contiguous5The constraint needed to store elements in the array. contiguousThe empty array. contiguous Test whether the array is empty. contiguous/Allocate a new mutable array of the given size. contiguous n x is a mutable array of length n with x the value of every element. contiguous'Index into an array at the given index. contiguousUIndex into an array at the given index, yielding an unboxed one-tuple of the element.  contiguousIndexing in a monad.xThe monad allows operations to be strict in the array when necessary. Suppose array copying is implemented like this: &copy mv v = ... write mv i (v ! i) ...For lazy arrays, v ! i4 would not be not be evaluated, which means that mv. would unnecessarily retain a reference to v in each element written.With  /, copying can be implemented like this instead: 3copy mv v = ... do x <- indexM v i write mv i xHere, no references to v' are retained because indexing (but not$ the elements) is evaluated eagerly.  contiguous(Read a mutable array at the given index.  contiguous,Write to a mutable array at the given index.  contiguous-Resize an array into one with the given size.  contiguousThe size of the array contiguousThe size of the mutable array contiguouszTurn a mutable array into an immutable one without copying. The mutable array should not be used after this conversion. contiguous\Turn a mutable array into an immutable one with copying, using a slice of the mutable array. contiguous<Copy a slice of an immutable array into a new mutable array. contiguous.Copy a slice of an array into a mutable array. contiguousCopy a slice of a mutable array into another mutable array. In the case that the destination and source arrays are the same, the regions may overlap. contiguousClone a slice of an array. contiguous!Clone a slice of a mutable array. contiguous!Test the two arrays for equality. contiguousYTest the two mutable arrays for pointer equality. Does not check equality of elements. contiguousUnlift an array into an `. contiguousLift an ` into an array. contiguousCreate a singleton array. contiguousCreate a doubleton array. contiguousCreate a tripleton array. contiguous1Reduce the array and all of its elements to WHNF. contiguous`A typeclass that is satisfied by all types. This is used used to provide a fake constraint for a and b. contiguousAppend two arrays.  contiguous1Map over the elements of an array with the index.! contiguous:Map strictly over the elements of an array with the index.RNote that because a new array must be created, the resulting array type can be  different than the original." contiguous"Map over the elements of an array.RNote that because a new array must be created, the resulting array type can be  different than the original.# contiguous+Map strictly over the elements of an array.RNote that because a new array must be created, the resulting array type can be  different than the original.$ contiguous'Convert one type of array into another.% contiguous(Right fold over the element of an array.& contiguous0Strict right fold over the elements of an array.' contiguous(Left fold over the elements of an array.( contiguous/Strict left fold over the elements of an array.) contiguousxStrict left fold over the elements of an array, where the accumulating function cares about the index of the element.* contiguousyStrict right fold over the elements of an array, where the accumulating function cares about the index of the element.+ contiguous+Monoidal fold over the element of an array., contiguous3Strict monoidal fold over the elements of an array.- contiguous8Strict left monoidal fold over the elements of an array.. contiguous3Strict monoidal fold over the elements of an array./ contiguous3Strict monoidal fold over the elements of an array.0 contiguous7Strict left monadic fold over the elements of an array.1 contiguous0Drop elements that do not satisfy the predicate.2 contiguous`Drop elements that do not satisfy the predicate which is applied to values and their indices.3 contiguousThe 3 function is a version of "d which can throw out elements. In particular, the functional arguments returns something of type c b. If this is d:, no element is added on to the result array. If it is e b, then b! is included in the result array.4 contiguous4 n x is an array of length n with x the value of every element.5 contiguous5 n act4 performs the action n times, gathering the results.6 contiguouszCreate an array from a list. If the given length does not match the actual length, this function has undefined behavior.7 contiguousCreate a mutable array from a list, reversing the order of the elements. If the given length does not match the actual length, this function has undefined behavior.8 contiguousCreate an array from a list, reversing the order of the elements. If the given length does not match the actual length, this function has undefined behavior.9 contiguous:Map over a mutable array, modifying the elements in place.: contiguousCStrictly map over a mutable array, modifying the elements in place.; contiguousGMap over a mutable array with indices, modifying the elements in place.< contiguousPStrictly map over a mutable array with indices, modifying the elements in place.= contiguousMap each element of the array to an action, evaluate these actions from left to right, and collect the results in a new array.> contiguousMap each element of the array to an action, evaluate these actions from left to right, and collect the results. For a version that ignores the results, see ?.? contiguousMap each element of the array to an action, evaluate these actions from left to right, and ignore the results. For a version that doesn't ignore the results, see >.@ contiguousiMap each element of the array and its index to an action, evaluating these actions from left to right.A contiguousMap each element of the array and its index to an action, evaluate these actions from left to right, and ignore the results. For a version that doesn't ignore the results, see @.B contiguousQConstruct an array of the given length by applying the function to each index.C contiguousXConstruct a mutable array of the given length by applying the function to each index.D contiguous^Construct a mutable array of the given length by applying the monadic action to each index.E contiguousApply a function n times to a value and construct an array where each consecutive element is the result of an additional application of this function. The zeroth element is the original value. E 5 (f 1) 0 = Q 5 [0,1,2,3,4]F contiguousApply a function n times to a value and construct a mutable array where each consecutive element is the result of an additional application of this function. The zeroth element is the original value.G contiguousApply a monadic function n times to a value and construct a mutable array where each consecutive element is the result of an additional application of this function. The zeroth element is the original value.H contiguous8Execute the monad action and freeze the resulting array.I contiguous:Execute the monadic action and freeze the resulting array.J contiguouskConstruct an array by repeatedly applying a generator function to a seed. The generator function yields e) the next element and the new seed or d" if there are no more elements.:unfoldr (\n -> if n == 0 then Nothing else Just (n,n-1) 10 <10,9,8,7,6,5,4,3,2,1>K contiguousrConstruct a mutable array by repeatedly applying a generator function to a seed. The generator function yields e) the next element and the new seed or d" if there are no more elements.AunfoldrMutable (\n -> if n == 0 then Nothing else Just (n,n-1) 10 <10,9,8,7,6,5,4,3,2,1>L contiguousConstruct an array with at most n elements by repeatedly applying the generator function to a seed. The generator function yields e& the next element and the new seed or d" if there are no more elements.g contiguousConstruct a mutable array with at most n elements by repeatedly applying the generator function to a seed. The generator function yields e& the next element and the new seed or d" if there are no more elements.M contiguousConvert an array to a list.N contiguous"Convert a mutable array to a list.O contiguous Given an hs that is representative of the length of the list, convert the list into a mutable array of the given length.Note: calls i" if the given length is incorrect.P contiguous8Convert a list into a mutable array of the given length.Q contiguous Given an hs that is representative of the length of the list, convert the list into a mutable array of the given length.Note: calls i" if the given length is incorrect.R contiguousConvert a list into an array.S contiguous0Modify the elements of a mutable array in-place.T contiguous9Strictly modify the elements of a mutable array in-place.U contiguous<Yield an array of the given length containing the values x, j x, j (j x) etc.V contiguousCYield a mutable array of the given length containing the values x, j x, j (j x) etc.W contiguouskLift an accumulating hash function over the elements of the array, returning the final accumulated hash.X contiguous!Reverse the elements of an array.Y contiguous2Reverse the elements of a mutable array, in-place.Z contiguousThis function does not behave deterministically. Optimization level and inlining can affect its results. However, the one thing that can be counted on is that if it returns k, the two immutable arrays are definitely the same. This is useful as shortcut for equality tests. However, keep in mind that a result of l& tells us nothing about the arguments. contiguousdestination array contiguousoffset into destination array contiguous source array contiguousoffset into source array contiguousnumber of elements to copy contiguousdestination array contiguousoffset into destination array contiguous source array contiguousoffset into source array contiguousnumber of elements to copym contiguouslength contiguouselement6 contiguouslength of list contiguouslist[    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[  4BCEF 5DGHIJLKUVXY "#9: !;<ST312Z'(%&+,-)*./0>?@A=RQPO687MN$Wn      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgehijkljkmjknjopqbrsjtujvwbrxbryz{$contiguous-0.4-KbcIIMPfyx4AImroiex3HData.Primitive.Contiguous ContiguousMutableElementemptynullnewreplicateMutableindexindex#indexMreadwriteresizesize sizeMutable unsafeFreezefreezethawcopy copyMutableclone cloneMutableequals equalsMutableunliftlift singleton doubleton tripletonrnfAlwaysappendimapimap'mapmap'convertfoldrfoldr'foldlfoldl'ifoldl'ifoldr'foldMapfoldMap' foldlMap' ifoldlMap' ifoldlMap1'foldlM'filterifiltermapMaybe replicatereplicateMutableMunsafeFromListNunsafeFromListReverseMutableNunsafeFromListReverseN mapMutable mapMutable' imapMutable imapMutable' traversePtraverse traverse_ itraverse itraverse_generategenerateMutablegenerateMutableMiterateNiterateMutableNiterateMutableNMcreatecreateTunfoldrunfoldrMutableunfoldrNtoList toListMutablefromListMutableNfromListMutable fromListNfromListmodifymodify' enumFromNenumFromMutableNliftHashWithSaltreversereverseMutablesame $fAlwaysa$fContiguousUnliftedArray$fContiguousArray$fContiguousPrimArray$fContiguousSmallArrayghc-primGHC.Prim ArrayArray#(primitive-0.6.4.0-1mvPxVOk6Q6KOkWCZxqESfData.Primitive.ArrayArrayData.Primitive.SmallArray SmallArraybase GHC.MaybeMaybeNothingJustGHC.Num+unfoldrMutableN GHC.TypesIntGHC.ErrerrorGHC.EnumsuccTrueFalsereplicateMutablePrimArray