Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data SparseSmallArray e
- empty :: SparseSmallArray e
- singleton :: Int -> e -> SparseSmallArray e
- maybeList :: [Maybe e] -> SparseSmallArray e
- pair :: Int -> e -> Int -> e -> SparseSmallArray e
- insert :: Int -> e -> SparseSmallArray e -> SparseSmallArray e
- replace :: Int -> e -> SparseSmallArray e -> SparseSmallArray e
- unset :: Int -> SparseSmallArray e -> SparseSmallArray e
- lookup :: Int -> SparseSmallArray e -> Maybe e
- focusAt :: Monad m => Focus a m b -> Int -> SparseSmallArray a -> m (b, SparseSmallArray a)
- toMaybeList :: SparseSmallArray e -> [Maybe e]
- toIndexedList :: SparseSmallArray e -> [(Int, e)]
- elementsUnfoldl :: SparseSmallArray e -> Unfoldl e
- elementsUnfoldlM :: Monad m => SparseSmallArray a -> UnfoldlM m a
- elementsListT :: SparseSmallArray a -> ListT STM a
- onElementAtFocus :: Monad m => Int -> Focus a m b -> Focus (SparseSmallArray a) m b
- null :: SparseSmallArray a -> Bool
Documentation
data SparseSmallArray e Source #
An immutable space-efficient sparse array, which can only store not more than 32 or 64 elements depending on the system architecure.
Instances
empty :: SparseSmallArray e Source #
singleton :: Int -> e -> SparseSmallArray e Source #
An array with a single element at the specified index.
maybeList :: [Maybe e] -> SparseSmallArray e Source #
insert :: Int -> e -> SparseSmallArray e -> SparseSmallArray e Source #
Insert an element value at the index. It's your obligation to ensure that the index is empty before the operation.
replace :: Int -> e -> SparseSmallArray e -> SparseSmallArray e Source #
unset :: Int -> SparseSmallArray e -> SparseSmallArray e Source #
Remove an element.
focusAt :: Monad m => Focus a m b -> Int -> SparseSmallArray a -> m (b, SparseSmallArray a) Source #
toMaybeList :: SparseSmallArray e -> [Maybe e] Source #
Convert into a list representation.
toIndexedList :: SparseSmallArray e -> [(Int, e)] Source #
elementsUnfoldl :: SparseSmallArray e -> Unfoldl e Source #
elementsUnfoldlM :: Monad m => SparseSmallArray a -> UnfoldlM m a Source #
elementsListT :: SparseSmallArray a -> ListT STM a Source #
onElementAtFocus :: Monad m => Int -> Focus a m b -> Focus (SparseSmallArray a) m b Source #
null :: SparseSmallArray a -> Bool Source #