| ||||||||||
| ||||||||||
| ||||||||||
| Description | ||||||||||
| Mutable boxed vectors. | ||||||||||
| Synopsis | ||||||||||
| Mutable boxed vectors | ||||||||||
| data MVector s a | ||||||||||
| ||||||||||
| type IOVector = MVector RealWorld | ||||||||||
| type STVector s = MVector s | ||||||||||
| Accessors | ||||||||||
| Length information | ||||||||||
| length :: MVector s a -> Int | ||||||||||
| Length of the mutable vector. | ||||||||||
| null :: MVector s a -> Bool | ||||||||||
| Check whether the vector is empty | ||||||||||
| Extracting subvectors | ||||||||||
| slice :: Int -> Int -> MVector s a -> MVector s a | ||||||||||
| Yield a part of the mutable vector without copying it. | ||||||||||
| init :: MVector s a -> MVector s a | ||||||||||
| tail :: MVector s a -> MVector s a | ||||||||||
| take :: Int -> MVector s a -> MVector s a | ||||||||||
| drop :: Int -> MVector s a -> MVector s a | ||||||||||
| unsafeSlice | ||||||||||
| ||||||||||
| unsafeInit :: MVector s a -> MVector s a | ||||||||||
| unsafeTail :: MVector s a -> MVector s a | ||||||||||
| unsafeTake :: Int -> MVector s a -> MVector s a | ||||||||||
| unsafeDrop :: Int -> MVector s a -> MVector s a | ||||||||||
| Overlapping | ||||||||||
| overlaps :: MVector s a -> MVector s a -> Bool | ||||||||||
| Construction | ||||||||||
| Initialisation | ||||||||||
| new :: PrimMonad m => Int -> m (MVector (PrimState m) a) | ||||||||||
| Create a mutable vector of the given length. | ||||||||||
| unsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) a) | ||||||||||
| Create a mutable vector of the given length. The length is not checked. | ||||||||||
| replicate :: PrimMonad m => Int -> a -> m (MVector (PrimState m) a) | ||||||||||
| Create a mutable vector of the given length (0 if the length is negative) and fill it with an initial value. | ||||||||||
| clone :: PrimMonad m => MVector (PrimState m) a -> m (MVector (PrimState m) a) | ||||||||||
| Create a copy of a mutable vector. | ||||||||||
| Growing | ||||||||||
| grow :: PrimMonad m => MVector (PrimState m) a -> Int -> m (MVector (PrimState m) a) | ||||||||||
| Grow a vector by the given number of elements. The number must be positive. | ||||||||||
| unsafeGrow :: PrimMonad m => MVector (PrimState m) a -> Int -> m (MVector (PrimState m) a) | ||||||||||
| Grow a vector by the given number of elements. The number must be positive but this is not checked. | ||||||||||
| Restricting memory usage | ||||||||||
| clear :: PrimMonad m => MVector (PrimState m) a -> m () | ||||||||||
| Reset all elements of the vector to some undefined value, clearing all references to external objects. This is usually a noop for unboxed vectors. | ||||||||||
| Accessing individual elements | ||||||||||
| read :: PrimMonad m => MVector (PrimState m) a -> Int -> m a | ||||||||||
| Yield the element at the given position. | ||||||||||
| write :: PrimMonad m => MVector (PrimState m) a -> Int -> a -> m () | ||||||||||
| Replace the element at the given position. | ||||||||||
| swap :: PrimMonad m => MVector (PrimState m) a -> Int -> Int -> m () | ||||||||||
| Swap the elements at the given positions. | ||||||||||
| unsafeRead :: PrimMonad m => MVector (PrimState m) a -> Int -> m a | ||||||||||
| Yield the element at the given position. No bounds checks are performed. | ||||||||||
| unsafeWrite :: PrimMonad m => MVector (PrimState m) a -> Int -> a -> m () | ||||||||||
| Replace the element at the given position. No bounds checks are performed. | ||||||||||
| unsafeSwap :: PrimMonad m => MVector (PrimState m) a -> Int -> Int -> m () | ||||||||||
| Swap the elements at the given positions. No bounds checks are performed. | ||||||||||
| Modifying vectors | ||||||||||
| Filling and copying | ||||||||||
| set :: PrimMonad m => MVector (PrimState m) a -> a -> m () | ||||||||||
| Set all elements of the vector to the given value. | ||||||||||
| copy :: PrimMonad m => MVector (PrimState m) a -> MVector (PrimState m) a -> m () | ||||||||||
| Copy a vector. The two vectors must have the same length and may not overlap. | ||||||||||
| unsafeCopy | ||||||||||
| ||||||||||
| Deprecated operations | ||||||||||
| newWith :: PrimMonad m => Int -> a -> m (MVector (PrimState m) a) | ||||||||||
| DEPRECATED Use replicate instead | ||||||||||
| unsafeNewWith :: PrimMonad m => Int -> a -> m (MVector (PrimState m) a) | ||||||||||
| DEPRECATED Use replicate instead | ||||||||||
| Produced by Haddock version 2.7.2 | ||||||||||