| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
GHC.Data.SmallArray
Contents
Description
Small-array
Synopsis
- data SmallMutableArray s a = SmallMutableArray (SmallMutableArray# s a)
- data SmallArray a = SmallArray (SmallArray# a)
- newSmallArray :: Int -> a -> State# s -> (# State# s, SmallMutableArray s a #)
- writeSmallArray :: SmallMutableArray s a -> Int -> a -> State# s -> State# s
- freezeSmallArray :: SmallMutableArray s a -> Int -> Int -> State# s -> (# State# s, SmallArray a #)
- unsafeFreezeSmallArray :: SmallMutableArray s a -> State# s -> (# State# s, SmallArray a #)
- indexSmallArray :: SmallArray a -> Int -> a
- sizeofSmallArray :: SmallArray a -> Int
- listToArray :: Int -> (e -> Int) -> (e -> a) -> [e] -> SmallArray a
- smallArrayFromList :: [a] -> SmallArray a
- smallArrayToList :: SmallArray a -> [a]
- mapSmallArray :: (a -> b) -> SmallArray a -> SmallArray b
- foldMapSmallArray :: Monoid m => (a -> m) -> SmallArray a -> m
- replicateSmallArrayIO :: Int -> IO a -> IO (SmallArray a)
- mapSmallArrayIO :: (a -> IO b) -> SmallArray a -> IO (SmallArray b)
- mapSmallArrayM_ :: Applicative f => (a -> f b) -> SmallArray a -> f ()
- imapSmallArrayM_ :: Applicative f => (Int -> a -> f b) -> SmallArray a -> f ()
- rnfSmallArray :: NFData a => SmallArray a -> ()
- type SmallMutableArrayIO a = SmallMutableArray RealWorld a
- newSmallArrayIO :: Int -> a -> IO (SmallMutableArrayIO a)
- writeSmallArrayIO :: SmallMutableArrayIO a -> Int -> a -> IO ()
- unsafeFreezeSmallArrayIO :: SmallMutableArrayIO a -> IO (SmallArray a)
Documentation
data SmallMutableArray s a Source #
Constructors
| SmallMutableArray (SmallMutableArray# s a) |
data SmallArray a Source #
Constructors
| SmallArray (SmallArray# a) |
Instances
| Binary a => Binary (SmallArray a) Source # | |
Defined in GHC.Data.SmallArray Methods put :: SmallArray a -> Put Source # get :: Get (SmallArray a) Source # putList :: [SmallArray a] -> Put Source # | |
| Show a => Show (SmallArray a) Source # | |
Defined in GHC.Data.SmallArray Methods showsPrec :: Int -> SmallArray a -> ShowS # show :: SmallArray a -> String # showList :: [SmallArray a] -> ShowS # | |
Arguments
| :: Int | size |
| -> a | initial contents |
| -> State# s | |
| -> (# State# s, SmallMutableArray s a #) |
Arguments
| :: SmallMutableArray s a | array |
| -> Int | index |
| -> a | new element |
| -> State# s | |
| -> State# s |
Arguments
| :: SmallMutableArray s a | source |
| -> Int | offset |
| -> Int | length |
| -> State# s | |
| -> (# State# s, SmallArray a #) |
Copy and freeze a slice of a mutable array.
unsafeFreezeSmallArray :: SmallMutableArray s a -> State# s -> (# State# s, SmallArray a #) Source #
Freeze a mutable array (no copy!)
Arguments
| :: SmallArray a | array |
| -> Int | index |
| -> a |
Index a small-array (no bounds checking!)
sizeofSmallArray :: SmallArray a -> Int Source #
Get the size of a SmallArray
listToArray :: Int -> (e -> Int) -> (e -> a) -> [e] -> SmallArray a Source #
Convert a list into an array.
smallArrayFromList :: [a] -> SmallArray a Source #
Construct a SmallArray from a list. This is different from
listToArray since the list elements fill the SmallArray
sequentially without recalculating the indices or remapping to
other element types.
smallArrayToList :: SmallArray a -> [a] Source #
Construct a list from a SmallArray.
mapSmallArray :: (a -> b) -> SmallArray a -> SmallArray b Source #
Map a function over the elements of a SmallArray
foldMapSmallArray :: Monoid m => (a -> m) -> SmallArray a -> m Source #
Fold the values of a SmallArray into a 'Monoid m' of choice
replicateSmallArrayIO :: Int -> IO a -> IO (SmallArray a) Source #
Execute the IO action the given number of times and store the
results in a SmallArray.
mapSmallArrayIO :: (a -> IO b) -> SmallArray a -> IO (SmallArray b) Source #
Apply the IO action to every element, producing a new
SmallArray.
mapSmallArrayM_ :: Applicative f => (a -> f b) -> SmallArray a -> f () Source #
Apply the monadic action to every element, ignoring the results.
imapSmallArrayM_ :: Applicative f => (Int -> a -> f b) -> SmallArray a -> f () Source #
Apply the monadic action to every element and its index, ignoring the results.
rnfSmallArray :: NFData a => SmallArray a -> () Source #
Force the elements of the given SmallArray
IO Operations
type SmallMutableArrayIO a = SmallMutableArray RealWorld a Source #
newSmallArrayIO :: Int -> a -> IO (SmallMutableArrayIO a) Source #
writeSmallArrayIO :: SmallMutableArrayIO a -> Int -> a -> IO () Source #
unsafeFreezeSmallArrayIO :: SmallMutableArrayIO a -> IO (SmallArray a) Source #