úÎ!õáímŠ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰None=?FHSVX_éA~ 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. contiguous›Copy 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  and .' 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.0 contiguous/Strict left fold over the elements of an array.1 contiguousxStrict left fold over the elements of an array, where the accumulating function cares about the index of the element.2 contiguousyStrict right fold over the elements of an array, where the accumulating function cares about the index of the element.3 contiguous+Monoidal fold over the element of an array.4 contiguous3Strict monoidal fold over the elements of an array.5 contiguous8Strict left monoidal fold over the elements of an array.6 contiguous3Strict monoidal fold over the elements of an array.7 contiguous3Strict monoidal fold over the elements of an array.8 contiguous7Strict left monadic fold over the elements of an array.9 contiguous0Drop elements that do not satisfy the predicate.: contiguous`Drop elements that do not satisfy the predicate which is applied to values and their indices.; contiguousThe ; function is a version of *d which can throw out elements. In particular, the functional arguments returns something of type ‹ b. If this is Œ:, no element is added on to the result array. If it is  b, then b! is included in the result array.< contiguousThe < function takes a list of ‹#s and returns a list of all the  values.= contiguous= n x is an array of length n with x the value of every element.> contiguous> n act4 performs the action n times, gathering the results.? contiguouszCreate an array from a list. If the given length does not match the actual length, this function has undefined behavior.@ contiguousªCreate 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.A contiguousŸCreate 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.B contiguous:Map over a mutable array, modifying the elements in place.C contiguousCStrictly map over a mutable array, modifying the elements in place.D contiguousGMap over a mutable array with indices, modifying the elements in place.E contiguousPStrictly map over a mutable array with indices, modifying the elements in place.F contiguous„Map each element of the array to an action, evaluate these actions from left to right, and collect the results in a new array.G contiguous¢Map 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 H.H contiguous¨Map 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 G.I contiguousiMap each element of the array and its index to an action, evaluating these actions from left to right.J contiguous¶Map 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 I.K contiguousK is GK with its arguments flipped. For a version that ignores the results see L.L contiguousL is HR with its arguments flipped. For a version that doesn't ignore the results see K./for_ (C.fromList [1..4] :: PrimArray Int) print1234M contiguous­Map each element of a structure to a monadic action, evaluate these actions from left to right, and collect the results. for a version that ignores the results see N.N contiguous³Map each element of a structure to a monadic action, evaluate these actions from left to right, and ignore the results. For a version that doesn't ignore the results see M.N = HO contiguousO is ML with its arguments flipped. For a version that ignores its results, see P.P contiguousP is NS with its arguments flipped. For a version that doesn't ignore its results, see O.Q contiguousƒEvaluate each action in the structure from left to right and collect the results. For a version that ignores the results see R.R contiguous‰Evaluate each action in the structure from left to right and ignore the results. For a version that doesn't ignore the results see Q.S contiguous1The sum of a collection of actions, generalizing Ž.Kasum (C.fromList ['Just' "Hello", 'Nothing', Just "World"] :: Array String) Just "Hello"T contiguousQConstruct an array of the given length by applying the function to each index.U contiguousWConstruct an array of the given length by applying the monadic actino to each index.V contiguousXConstruct a mutable array of the given length by applying the function to each index.W contiguous^Construct a mutable array of the given length by applying the monadic action to each index.X 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. X 5 ( 1) 0 = d 5 [0,1,2,3,4]Y 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.Z 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.[ contiguous8Execute the monad action and freeze the resulting array.\ contiguous:Execute the monadic action and freeze the resulting array.] contiguouskConstruct an array by repeatedly applying a generator function to a seed. The generator function yields ) the next element and the new seed or Œ" 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>^ contiguousrConstruct a mutable array by repeatedly applying a generator function to a seed. The generator function yields ) the next element and the new seed or Œ" 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>_ contiguousˆConstruct an array with at most n elements by repeatedly applying the generator function to a seed. The generator function yields & the next element and the new seed or Œ" if there are no more elements. contiguousConstruct a mutable array with at most n elements by repeatedly applying the generator function to a seed. The generator function yields & the next element and the new seed or Œ" if there are no more elements.` contiguousConvert an array to a list.a contiguous"Convert a mutable array to a list.b contiguous Given an ‘s that is representative of the length of the list, convert the list into a mutable array of the given length.Note: calls ’" if the given length is incorrect.c contiguous8Convert a list into a mutable array of the given length.d contiguous Given an ‘s that is representative of the length of the list, convert the list into a mutable array of the given length.Note: calls ’" if the given length is incorrect.e contiguousConvert a list into an array.f contiguous0Modify the elements of a mutable array in-place.g contiguous9Strictly modify the elements of a mutable array in-place.h contiguous<Yield an array of the given length containing the values x, “ x, “ (“ x) etc.i contiguousCYield a mutable array of the given length containing the values x, “ x, “ (“ x) etc.j contiguouskLift an accumulating hash function over the elements of the array, returning the final accumulated hash.k contiguous!Reverse the elements of an array.l contiguous2Reverse the elements of a mutable array, in-place.m contiguous=Reverse the elements of a slice of a mutable array, in-place.n contiguous¯This 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 ”Œ, the two immutable arrays are definitely the same. This is useful as shortcut for equality tests. However, keep in mind that a result of •& tells us nothing about the arguments.o contiguous(Does the element occur in the structure?p contiguous#The largest element of a structure.q contiguous!The least element of a structure.r contiguousTThe largest element of a structure with respect to the given comparison function.s contiguousRThe least element of a structure with respect to the given comparison function.t contiguoustl takes a predicate and an array, and returns the leftmost element of the array matching the prediate, or Œ" if there is no such predicate.u contiguous<Swap the elements of the mutable array at the given indices.v contiguousExtracts from an array of – all the — elements. All the —! elements are extracted in order.w contiguousExtracts from an array of – all the ˜ elements. All the ˜! elements are extracted in order.x contiguousPartitions an array of – into two arrays. All the —X elements are extracted, in order, to the first component of the output. Similarly the ˜? elements are extracted to the second component of the output.y contiguousy is similar to /E, but returns an array of successive reduced values from the left: 9scanl f z [x1, x2, ...] = [z, f z x1, f (f z x1) x2, ...] Note that -last (toList (scanl f z xs)) == foldl f z xs.z contiguous A variant of yC whose function argument takes the current index as an argument.{ contiguous#A strictly accumulating version of y.| contiguous#A strictly accumulating version of z.} contiguous A prescan. prescanl f z = init . scanl f z Example: $prescanl (+) 0 <1,2,3,4> = <0,1,3,6>~ contiguous A variant of }_ where the function argument takes the current index of the array as an additional argument. contiguousLike } , but with a strict accumulator.€ contiguousLike ~ , but with a strict accumulator. contiguous generalises ‚m by zipping with the function given as the first argument, instead of a tupling function. For example, O (+) is applied to two arrays to produce an array of the corresponding sums.‚ contiguous‚A takes two arrays and returns an array of corresponding pairs. ,zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]cIf one input array is shorter than the other, excess elements of the longer array are discarded: =zip [1] ['a', 'b'] = [(1, 'a')] zip [1, 2] ['a'] = [(1, 'a')]ƒ contiguous7Replace all locations in the input with the same value.Equivalent to Data.Functor..„ contiguousSequential application."Equivalent to Control.Applicative.. 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 copy™ contiguouslength contiguouselement? contiguouslength of list contiguouslistm contiguous start index contiguous end index… % !$#"  &'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…  "#$=TUVXY>WZ[\]_^hi'klm*+BC()DEfg;‚u9:<vwxtopqrsn/0-.34512678SGHIJFMONPKLQRƒ„y{z|}~€edcb?A@`a,! j% &š        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š˜™›˜™œ˜ž˜Ÿ ¡•¢£˜¤¥˜¦§•¢¨•¢©˜ª«˜ª¬˜ª­®¯%contiguous-0.5-ECndjgnbkjc89x3FGZNFJXData.Primitive.Contiguous Data.Functor<$Control.Applicative<*>(primitive-0.7.0.0-9xMM76CsovTEGnXCHiCdRJData.Primitive.PrimArray PrimArrayMutablePrimArrayData.Primitive.SmallArray SmallArraySmallMutableArrayData.Primitive.ArrayArray MutableArray0primitive-unlifted-0.1.2.0-Cj2PXuMmRKdIxSd3izdqfData.Primitive.Unlifted.ArrayMutableUnliftedArray UnliftedArray ContiguousMutableElementemptynullnewreplicateMutableindexindex#indexMreadwriteresizesize sizeMutable unsafeFreezefreezethawcopy copyMutableclone cloneMutableequals equalsMutableunliftlift singleton doubleton tripletonrnfAlwaysappendimapimap'mapmap'convertfoldrfoldr'foldlfoldl'ifoldl'ifoldr'foldMapfoldMap' foldlMap' ifoldlMap' ifoldlMap1'foldlM'filterifiltermapMaybe catMaybes replicatereplicateMutableMunsafeFromListNunsafeFromListReverseMutableNunsafeFromListReverseN mapMutable mapMutable' imapMutable imapMutable' traversePtraverse traverse_ itraverse itraverse_forfor_mapMmapM_forMforM_sequence sequence_asumgenerate generateMgenerateMutablegenerateMutableMiterateNiterateMutableNiterateMutableNMcreatecreateTunfoldrunfoldrMutableunfoldrNtoList toListMutablefromListMutableNfromListMutable fromListNfromListmodifymodify' enumFromNenumFromMutableNliftHashWithSaltreversereverseMutable reverseSlicesameelemmaximumminimum maximumBy minimumByfindswapleftsrightspartitionEithersscanliscanlscanl'iscanl'prescanl iprescanl prescanl' iprescanl'zipWithzipap $fAlwaysa$fContiguousUnliftedArray$fContiguousArray$fContiguousPrimArray$fContiguousSmallArrayghc-primGHC.Prim ArrayArray#base GHC.MaybeMaybeNothingJust Data.FoldableconcatGHC.Num+unfoldrMutableN GHC.TypesIntGHC.ErrerrorGHC.EnumsuccTrueFalse Data.EitherEitherLeftRightreplicateMutablePrimArray