The size of the array
Modulecontiguous-0.6.4.2Haskell2010
Data.Primitive.Contiguous
The contiguous package presents a common API to a number of contiguous array types and their mutable counterparts. This is enabled with the Contiguous typeclass, which parameterises over a contiguous array type and defines the core operations. However, the stable part of the interface is contained in this module, which combines those primitives into common, efficient array algorithms suitable for replacing pointer-heavy list manipulations.
- 10 types
- 3 classes
- 122 values
- Packagecontiguous-0.6.4.2
- Exports175
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceContiguous.hs
Accessors
0 declarationsLength Information
The size of the mutable array
Test whether the array is empty.
Indexing
Index into an array at the given index.
Index into an array at the given index, yielding an unboxed one-tuple of the element.
Read a mutable array at the given index.
Monadic indexing
Indexing in a monad.
The 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 ! i would not be not be evaluated,
which means that mv would unnecessarily retain a reference
to v in each element written.
With indexM, copying can be implemented like this instead:
copy 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.
Construction
0 declarationsInitialisation
The empty array.
Allocate a new mutable array of the given size.
Create a singleton array.
Create a doubleton array.
Create a tripleton array.
Create a quadrupleton array.
Create a quintupleton array.
Create a sextupleton array.
replicate n x is an array of length n with x the value of every element.
replicateMut n x is a mutable array of length n with x the
value of every element.
Construct an array of the given length by applying the function to each index.
Construct an array of the given length by applying the monadic action to each index.
Construct a mutable array of the given length by applying the function to each index.
Apply 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.
Write to a mutable array at the given index.
Fixed Length
Running
Run an effectful computation that produces an array.
Monadic initialisation
replicateMutM n act performs the action n times, gathering the results.
Construct a mutable array of the given length by applying the monadic action to each index.
Apply 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.
Execute the monad action and freeze the resulting array.
Execute the monadic action and freeze the resulting array.
Unfolding
Enumeration
Concatenation
Append two arrays.
Splitting and Splicing
Copy a slice of an array and then insert an element into that array.
The default implementation performs a memset which would be unnecessary except that the garbage collector might trace the uninitialized array.
Was previously insertSlicing
@since 0.6.0
Slicing
6 declarationsSlices of immutable arrays: packages an offset and length with a backing array.
Instances5Contiguous, Element, Mutable, MutableSliced, Sliced
ContiguousU arr => Contiguous (Slice arr)Defined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Element (Slice arr) = Element arrDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Mutable (Slice arr) = MutableSlice arrDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype MutableSliced (Slice arr) = MutableSlice arrDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Sliced (Slice arr) = Slice arrDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Class
Slices of mutable arrays: packages an offset and length with a mutable backing array.
Create a Slice of an array.
O(1).
Create a MutableSlice of a mutable array.
O(1).
Create a Slice that covers the entire array.
Create a MutableSlice that covers the entire array.
Modifying arrays
6 declarationsCreate a copy of an array except the element at the index is replaced with the given value.
Variant of modifyAt that forces the result before installing it in the array.
Delete the element at the given position.
Permutations
Reverse the elements of an array.
Reverse the elements of a mutable array, in-place.
reverseSlice Reverse the elements of a slice of a mutable array, in-place.
Resizing
Resize an array into one with the given size.
Resize an array without growing it.
Elementwise operations
0 declarationsMapping
Map over the elements of an array.
Note that because a new array must be created, the resulting array type can be different than the original.
Map strictly over the elements of an array.
Note that because a new array must be created, the resulting array type can be different than the original.
Map over a mutable array, modifying the elements in place.
Strictly map over a mutable array, modifying the elements in place.
Map over the elements of an array with the index.
Map strictly over the elements of an array with the index.
Note that because a new array must be created, the resulting array type can be different than the original.
Map over a mutable array with indices, modifying the elements in place.
Strictly map over a mutable array with indices, modifying the elements in place.
Modify the elements of a mutable array in-place.
Strictly modify the elements of a mutable array in-place.
Zipping
zip takes two arrays and returns an array of corresponding pairs.
zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]If 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')]Variant of zipWith that provides the index of each pair of elements.
Specific elements
Swap the elements of the mutable array at the given indices.
Working with predicates
0 declarationsFiltering
Drop elements that do not satisfy the predicate.
Drop elements that do not satisfy the predicate which is applied to values and their indices.
Searching
Does the element occur in the structure?
The largest element of a structure.
The least element of a structure.
The largest element of a structure with respect to the given comparison function.
The least element of a structure with respect to the given comparison function.
Comparing for equality
Test the two arrays for equality.
Test the two mutable arrays for pointer equality. Does not check equality of elements.
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 True, the two immutable arrays are definitely the same. This is useful as shortcut for equality tests. However, keep in mind that a result of False tells us nothing about the arguments.
Folds
18 declarationsLeft fold over the elements of an array.
Strict left fold over the elements of an array.
Right fold over the element of an array.
Strict right fold over the elements of an array.
Monoidal fold over the element of an array.
Strict monoidal fold over the elements of an array.
Strict left monoidal fold over the elements of an array.
Strict left fold over the elements of an array, where the accumulating function cares about the index of the element.
Right fold over the element of an array, lazy in the accumulator, provides index to the step function.
Strict right fold over the elements of an array, where the accumulating function cares about the index of the element.
Strict monoidal fold over the elements of an array.
Strict monoidal fold over the elements of an array.
Strict left monadic fold over the elements of an array.
Strict left monadic fold over the elements of an array.
Strict right monadic fold over the elements of an array.
The sum of a collection of actions, generalizing concat.
asum (C.fromList ['Just' "Hello", 'Nothing', Just "World"] :: Array String)Just "Hello"
Zipping Folds
Variant of zipWith that accepts an accumulator, performing a lazy right fold over both arrays.
Variant of foldrZipWith that provides the index of each pair of elements.
Variant of zipWith that accepts an accumulator, performing a strict left monadic fold over both arrays.
Variant of 'foldlZipWithM'' that provides the index of each pair of elements.
Traversals
14 declarationsMap 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 traverse_.
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 traverse.
Map each element of the array and its index to an action, evaluating these actions from left to right.
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 itraverse.
Map each element of the array to an action, evaluate these actions from left to right, and collect the results in a new array.
Map each element of the array to an action, evaluate these actions from left to right, and collect the results in a new array.
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 mapM_.
Evaluate each action in the structure from left to right and collect the results. For a version that ignores the results see sequence_.
Evaluate each action in the structure from left to right and ignore the results. For a version that doesn't ignore the results see sequence.
Typeclass method defaults
2 declarationsReplace all locations in the input with the same value.
Equivalent to Data.Functor.Data.Functor.<$.
Sequential application.
Equivalent to Control.Applicative.<*>.
Prefix sums (scans)
10 declarationsA strictly accumulating version of scanl.
A variant of scanl whose function argument takes the current index as an argument.
A strictly accumulating version of iscanl.
A prescan.
prescanl f z = init . scanl f zExample: prescanl (+) 0 <1,2,3,4> = <0,1,3,6>
Like prescanl, but with a strict accumulator.
A variant of prescanl where the function argument takes the current index of the array as an additional argument.
Like iprescanl, but with a strict accumulator.
Monadic accumulating strict left fold over the elements on an array.
Conversions
0 declarationsLists
Convert a list into an array.
Convert a list into a mutable array of the given length.
Create an array from a list. If the given length does not match the actual length, this function has undefined behavior.
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.
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.
Convert an array to a list.
Convert a mutable array to a list.
Other array types
Convert one type of array into another.
Lift an array (i.e. point to the data through an intervening thunk).
Lift a mutable array (i.e. point to the data through an intervening thunk).
Unlift an array (i.e. point to the data without an intervening thunk).
Unlift a mutable array (i.e. point to the data without an intervening thunk).
Between mutable and immutable variants
Clone a slice of an array.
Clone a slice of a mutable array.
Copy a slice of an array into a mutable array.
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.
Turn a mutable array slice an immutable array by copying.
Copy a slice of an immutable array into a new mutable array.
Turn a mutable array into an immutable one without copying. The mutable array should not be used after this conversion.
Hashing
1 declarationLift an accumulating hash function over the elements of the array, returning the final accumulated hash.
Forcing an array and its contents
1 declarationReduce the array and all of its elements to WHNF.
Classes
3 declarationsThe Contiguous typeclass as an interface to a multitude of contiguous structures.
Some functions do not make sense on slices; for those, see ContiguousU.
Associated types
type family Mutable (arr :: Type -> Type) :: Type -> Type -> TypeThe Mutable counterpart to the array.
type family Element (arr :: Type -> Type) :: Type -> ConstraintThe constraint needed to store elements in the array.
type family Sliced (arr :: Type -> Type) :: Type -> TypeThe slice type of this array. The slice of a raw array type
tshould be 'Slice t', whereas the slice of a slice should be the same slice type.type family MutableSliced (arr :: Type -> Type) :: Type -> Type -> TypeThe mutable slice type of this array. The mutable slice of a raw array type
tshould be 'MutableSlice t', whereas the mutable slice of a mutable slice should be the same slice type.
Instances5Contiguous
Contiguous ArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassContiguous PrimArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassContiguous SmallArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassContiguous (UnliftedArray_ unlifted_a)Defined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassContiguousU arr => Contiguous (Slice arr)Defined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Class
The ContiguousU typeclass is an extension of the Contiguous typeclass, but includes operations that make sense only on unsliced contiguous structures.
Instances4ContiguousU
ContiguousU ArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassContiguousU PrimArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassContiguousU SmallArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassContiguousU (UnliftedArray_ unlifted_a)Defined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Class
A typeclass that is satisfied by all types. This is used used to provide a fake constraint for Array and SmallArray.
Instances1Always
Always aDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Class
Re-Exports
8 declarationsBoxed arrays.
Instances36Monad, Functor, MonadFix, MonadFail, Applicative, Foldable, …
Monad ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayFunctor ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayMonadFix ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayMonadFail ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayApplicative ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayFoldable ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayTraversable ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayAlternative ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayMonadPlus ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayMonadZip ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayEq1 ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayOrd1 ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayRead1 ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayShow1 ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayNFData1 ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayContiguous ArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassContiguousU ArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassLift a => Lift (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayIsList (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayEq a => Eq (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayData a => Data (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayOrd a => Ord (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayLexicographic ordering. Subject to change between major versions.
Read a => Read (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayShow a => Show (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArraySemigroup (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayMonoid (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayNFData a => NFData (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayPrimUnlifted (Array a)Defined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Classtype Item (Array a) = aDefined in primitive-0.9.1.0 · Data.Primitive.Arraytype Unlifted (Array a) = Array# aDefined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Classtype Element Array = AlwaysDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Mutable Array = MutableArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype MutableSliced Array = MutableSlice ArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Sliced Array = Slice ArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Unlifted Array = Array#Defined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype UnliftedMut Array = MutableArray#Defined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Class
Mutable boxed arrays associated with a primitive state token.
Instances4Eq, Data, PrimUnlifted, Unlifted
Eq (MutableArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.Array(Typeable s, Typeable a) => Data (MutableArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayPrimUnlifted (MutableArray s a)Defined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Classtype Unlifted (MutableArray s a) = MutableArray# s aDefined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Class
Instances36Monad, Functor, MonadFix, MonadFail, Applicative, Foldable, …
Monad SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayFunctor SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonadFix SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonadFail SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayApplicative SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayFoldable SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayTraversable SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayAlternative SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonadPlus SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonadZip SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayEq1 SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayOrd1 SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayRead1 SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayShow1 SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayNFData1 SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayContiguous SmallArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassContiguousU SmallArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassLift a => Lift (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayIsList (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayEq a => Eq (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayData a => Data (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayOrd a => Ord (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayLexicographic ordering. Subject to change between major versions.
Read a => Read (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayShow a => Show (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArraySemigroup (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonoid (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayNFData a => NFData (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayPrimUnlifted (SmallArray a)Defined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Classtype Item (SmallArray a) = aDefined in primitive-0.9.1.0 · Data.Primitive.SmallArraytype Unlifted (SmallArray a) = SmallArray# aDefined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Classtype Element SmallArray = AlwaysDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Mutable SmallArray = SmallMutableArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype MutableSliced SmallArray = MutableSlice SmallArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Sliced SmallArray = Slice SmallArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Unlifted SmallArray = SmallArray#Defined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype UnliftedMut SmallArray = SmallMutableArray#Defined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Class
Instances4Eq, Data, PrimUnlifted, Unlifted
Eq (SmallMutableArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArray(Typeable s, Typeable a) => Data (SmallMutableArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayPrimUnlifted (SmallMutableArray s a)Defined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Classtype Unlifted (SmallMutableArray s a) = SmallMutableArray# s aDefined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Class
Instances19Contiguous, ContiguousU, Lift, IsList, Eq, Ord, …
Contiguous PrimArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassContiguousU PrimArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.ClassLift (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayPrim a => IsList (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArray(Eq a, Prim a) => Eq (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArray(Ord a, Prim a) => Ord (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayLexicographic ordering. Subject to change between major versions.
(Show a, Prim a) => Show (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArraySemigroup (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayMonoid (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayNFData (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayPrimUnlifted (PrimArray a)Defined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Classtype Item (PrimArray a) = aDefined in primitive-0.9.1.0 · Data.Primitive.PrimArraytype Unlifted (PrimArray a) = ByteArray#Defined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Classtype Element PrimArray = PrimDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Mutable PrimArray = MutablePrimArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype MutableSliced PrimArray = MutableSlice PrimArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Sliced PrimArray = Slice PrimArrayDefined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype Unlifted PrimArray = PrimArray#Defined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Classtype UnliftedMut PrimArray = MutablePrimArray#Defined in contiguous-0.6.4.2 · Data.Primitive.Contiguous.Class
Mutable primitive arrays associated with a primitive state token. These can be written to and read from in a monadic context that supports sequencing, such as IO or ST. Typically, a mutable primitive array will be built and then converted to an immutable primitive array using unsafeFreezePrimArray. However, it is also acceptable to simply discard a mutable primitive array since it lives in managed memory and will be garbage collected when no longer referenced.
Instances4Eq, NFData, PrimUnlifted, Unlifted
Eq (MutablePrimArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayNFData (MutablePrimArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayPrimUnlifted (MutablePrimArray s a)Defined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Classtype Unlifted (MutablePrimArray s a) = MutableByteArray# sDefined in primitive-unlifted-2.1.0.0 · Data.Primitive.Unlifted.Class
A type synonym for an UnliftedArray_ containing lifted values of a particular type. As a general rule, this type synonym should not be used in class instances—use UnliftedArray_ with an equality constraint instead. It also should not be used when defining newtypes or datatypes, unless those will have restrictive type roles regardless—use UnliftedArray_ instead.
A mutable version of MutableUnliftedArray.