foundation-0.0.30: Alternative prelude with batteries and no dependencies
LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Foundation.Array

Description

Simple Array and Almost-Array-like data structure

Generally accessible in o(1)

Synopsis

Documentation

data Array a #

Array of a

Instances

Instances details
Functor Array 
Instance details

Defined in Basement.BoxedArray

Methods

fmap :: (a -> b) -> Array a -> Array b #

(<$) :: a -> Array b -> Array a #

Mappable Array # 
Instance details

Defined in Foundation.Collection.Mappable

Methods

traverse :: Applicative f => (a -> f b) -> Array a -> f (Array b) #

sequenceA :: Applicative f => Array (f a) -> f (Array a) #

mapM :: (Applicative m, Monad m) => (a -> m b) -> Array a -> m (Array b) #

sequence :: (Applicative m, Monad m) => Array (m a) -> m (Array a) #

Data ty => Data (Array ty) 
Instance details

Defined in Basement.BoxedArray

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Array ty -> c (Array ty) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Array ty) #

toConstr :: Array ty -> Constr #

dataTypeOf :: Array ty -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Array ty)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Array ty)) #

gmapT :: (forall b. Data b => b -> b) -> Array ty -> Array ty #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Array ty -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Array ty -> r #

gmapQ :: (forall d. Data d => d -> u) -> Array ty -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Array ty -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Array ty -> m (Array ty) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Array ty -> m (Array ty) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Array ty -> m (Array ty) #

Monoid (Array a) 
Instance details

Defined in Basement.BoxedArray

Methods

mempty :: Array a #

mappend :: Array a -> Array a -> Array a #

mconcat :: [Array a] -> Array a #

Semigroup (Array a) 
Instance details

Defined in Basement.BoxedArray

Methods

(<>) :: Array a -> Array a -> Array a #

sconcat :: NonEmpty (Array a) -> Array a #

stimes :: Integral b => b -> Array a -> Array a #

IsList (Array ty) 
Instance details

Defined in Basement.BoxedArray

Associated Types

type Item (Array ty) #

Methods

fromList :: [Item (Array ty)] -> Array ty #

fromListN :: Int -> [Item (Array ty)] -> Array ty #

toList :: Array ty -> [Item (Array ty)] #

Show a => Show (Array a) 
Instance details

Defined in Basement.BoxedArray

Methods

showsPrec :: Int -> Array a -> ShowS #

show :: Array a -> String #

showList :: [Array a] -> ShowS #

NormalForm a => NormalForm (Array a) 
Instance details

Defined in Basement.BoxedArray

Methods

toNormalForm :: Array a -> () #

Buildable (Array ty) # 
Instance details

Defined in Foundation.Collection.Buildable

Associated Types

type Mutable (Array ty) :: Type -> Type #

type Step (Array ty) #

Methods

append :: forall (prim :: Type -> Type) err. PrimMonad prim => Element (Array ty) -> Builder (Array ty) (Mutable (Array ty)) (Step (Array ty)) prim err () #

build :: PrimMonad prim => Int -> Builder (Array ty) (Mutable (Array ty)) (Step (Array ty)) prim err () -> prim (Either err (Array ty)) #

Collection (Array ty) # 
Instance details

Defined in Foundation.Collection.Collection

Methods

null :: Array ty -> Bool #

length :: Array ty -> CountOf (Element (Array ty)) #

elem :: (Eq a, a ~ Element (Array ty)) => Element (Array ty) -> Array ty -> Bool #

notElem :: (Eq a, a ~ Element (Array ty)) => Element (Array ty) -> Array ty -> Bool #

maximum :: (Ord a, a ~ Element (Array ty)) => NonEmpty (Array ty) -> Element (Array ty) #

minimum :: (Ord a, a ~ Element (Array ty)) => NonEmpty (Array ty) -> Element (Array ty) #

any :: (Element (Array ty) -> Bool) -> Array ty -> Bool #

all :: (Element (Array ty) -> Bool) -> Array ty -> Bool #

Copy (Array ty) # 
Instance details

Defined in Foundation.Collection.Copy

Methods

copy :: Array ty -> Array ty #

Fold1able (Array ty) # 
Instance details

Defined in Foundation.Collection.Foldable

Methods

foldl1' :: (Element (Array ty) -> Element (Array ty) -> Element (Array ty)) -> NonEmpty (Array ty) -> Element (Array ty) #

foldr1 :: (Element (Array ty) -> Element (Array ty) -> Element (Array ty)) -> NonEmpty (Array ty) -> Element (Array ty) #

Foldable (Array ty) # 
Instance details

Defined in Foundation.Collection.Foldable

Methods

foldl' :: (a -> Element (Array ty) -> a) -> a -> Array ty -> a #

foldr :: (Element (Array ty) -> a -> a) -> a -> Array ty -> a #

foldr' :: (Element (Array ty) -> a -> a) -> a -> Array ty -> a #

IndexedCollection (Array ty) # 
Instance details

Defined in Foundation.Collection.Indexed

Methods

(!) :: Array ty -> Offset (Element (Array ty)) -> Maybe (Element (Array ty)) #

findIndex :: (Element (Array ty) -> Bool) -> Array ty -> Maybe (Offset (Element (Array ty))) #

InnerFunctor (Array ty) # 
Instance details

Defined in Foundation.Collection.InnerFunctor

Methods

imap :: (Element (Array ty) -> Element (Array ty)) -> Array ty -> Array ty #

Sequential (Array ty) # 
Instance details

Defined in Foundation.Collection.Sequential

Methods

take :: CountOf (Element (Array ty)) -> Array ty -> Array ty #

revTake :: CountOf (Element (Array ty)) -> Array ty -> Array ty #

drop :: CountOf (Element (Array ty)) -> Array ty -> Array ty #

revDrop :: CountOf (Element (Array ty)) -> Array ty -> Array ty #

splitAt :: CountOf (Element (Array ty)) -> Array ty -> (Array ty, Array ty) #

revSplitAt :: CountOf (Element (Array ty)) -> Array ty -> (Array ty, Array ty) #

splitOn :: (Element (Array ty) -> Bool) -> Array ty -> [Array ty] #

break :: (Element (Array ty) -> Bool) -> Array ty -> (Array ty, Array ty) #

breakEnd :: (Element (Array ty) -> Bool) -> Array ty -> (Array ty, Array ty) #

breakElem :: Element (Array ty) -> Array ty -> (Array ty, Array ty) #

takeWhile :: (Element (Array ty) -> Bool) -> Array ty -> Array ty #

dropWhile :: (Element (Array ty) -> Bool) -> Array ty -> Array ty #

intersperse :: Element (Array ty) -> Array ty -> Array ty #

intercalate :: Element (Array ty) -> Array ty -> Element (Array ty) #

span :: (Element (Array ty) -> Bool) -> Array ty -> (Array ty, Array ty) #

spanEnd :: (Element (Array ty) -> Bool) -> Array ty -> (Array ty, Array ty) #

filter :: (Element (Array ty) -> Bool) -> Array ty -> Array ty #

partition :: (Element (Array ty) -> Bool) -> Array ty -> (Array ty, Array ty) #

reverse :: Array ty -> Array ty #

uncons :: Array ty -> Maybe (Element (Array ty), Array ty) #

unsnoc :: Array ty -> Maybe (Array ty, Element (Array ty)) #

snoc :: Array ty -> Element (Array ty) -> Array ty #

cons :: Element (Array ty) -> Array ty -> Array ty #

find :: (Element (Array ty) -> Bool) -> Array ty -> Maybe (Element (Array ty)) #

sortBy :: (Element (Array ty) -> Element (Array ty) -> Ordering) -> Array ty -> Array ty #

singleton :: Element (Array ty) -> Array ty #

head :: NonEmpty (Array ty) -> Element (Array ty) #

last :: NonEmpty (Array ty) -> Element (Array ty) #

tail :: NonEmpty (Array ty) -> Array ty #

init :: NonEmpty (Array ty) -> Array ty #

replicate :: CountOf (Element (Array ty)) -> Element (Array ty) -> Array ty #

isPrefixOf :: Array ty -> Array ty -> Bool #

isSuffixOf :: Array ty -> Array ty -> Bool #

isInfixOf :: Array ty -> Array ty -> Bool #

stripPrefix :: Array ty -> Array ty -> Maybe (Array ty) #

stripSuffix :: Array ty -> Array ty -> Maybe (Array ty) #

BoxedZippable (Array ty) # 
Instance details

Defined in Foundation.Collection.Zippable

Methods

zip :: (Sequential a, Sequential b, Element (Array ty) ~ (Element a, Element b)) => a -> b -> Array ty #

zip3 :: (Sequential a, Sequential b, Sequential c, Element (Array ty) ~ (Element a, Element b, Element c)) => a -> b -> c -> Array ty #

zip4 :: (Sequential a, Sequential b, Sequential c, Sequential d, Element (Array ty) ~ (Element a, Element b, Element c, Element d)) => a -> b -> c -> d -> Array ty #

zip5 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Element (Array ty) ~ (Element a, Element b, Element c, Element d, Element e)) => a -> b -> c -> d -> e -> Array ty #

zip6 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Sequential f, Element (Array ty) ~ (Element a, Element b, Element c, Element d, Element e, Element f)) => a -> b -> c -> d -> e -> f -> Array ty #

zip7 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Sequential f, Sequential g, Element (Array ty) ~ (Element a, Element b, Element c, Element d, Element e, Element f, Element g)) => a -> b -> c -> d -> e -> f -> g -> Array ty #

unzip :: (Sequential a, Sequential b, Element (Array ty) ~ (Element a, Element b)) => Array ty -> (a, b) #

unzip3 :: (Sequential a, Sequential b, Sequential c, Element (Array ty) ~ (Element a, Element b, Element c)) => Array ty -> (a, b, c) #

unzip4 :: (Sequential a, Sequential b, Sequential c, Sequential d, Element (Array ty) ~ (Element a, Element b, Element c, Element d)) => Array ty -> (a, b, c, d) #

unzip5 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Element (Array ty) ~ (Element a, Element b, Element c, Element d, Element e)) => Array ty -> (a, b, c, d, e) #

unzip6 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Sequential f, Element (Array ty) ~ (Element a, Element b, Element c, Element d, Element e, Element f)) => Array ty -> (a, b, c, d, e, f) #

unzip7 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Sequential f, Sequential g, Element (Array ty) ~ (Element a, Element b, Element c, Element d, Element e, Element f, Element g)) => Array ty -> (a, b, c, d, e, f, g) #

Zippable (Array ty) # 
Instance details

Defined in Foundation.Collection.Zippable

Methods

zipWith :: (Sequential a, Sequential b) => (Element a -> Element b -> Element (Array ty)) -> a -> b -> Array ty #

zipWith3 :: (Sequential a, Sequential b, Sequential c) => (Element a -> Element b -> Element c -> Element (Array ty)) -> a -> b -> c -> Array ty #

zipWith4 :: (Sequential a, Sequential b, Sequential c, Sequential d) => (Element a -> Element b -> Element c -> Element d -> Element (Array ty)) -> a -> b -> c -> d -> Array ty #

zipWith5 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e) => (Element a -> Element b -> Element c -> Element d -> Element e -> Element (Array ty)) -> a -> b -> c -> d -> e -> Array ty #

zipWith6 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Sequential f) => (Element a -> Element b -> Element c -> Element d -> Element e -> Element f -> Element (Array ty)) -> a -> b -> c -> d -> e -> f -> Array ty #

zipWith7 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Sequential f, Sequential g) => (Element a -> Element b -> Element c -> Element d -> Element e -> Element f -> Element g -> Element (Array ty)) -> a -> b -> c -> d -> e -> f -> g -> Array ty #

Hashable a => Hashable (Array a) # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Array a -> st -> st #

Eq a => Eq (Array a) 
Instance details

Defined in Basement.BoxedArray

Methods

(==) :: Array a -> Array a -> Bool #

(/=) :: Array a -> Array a -> Bool #

Ord a => Ord (Array a) 
Instance details

Defined in Basement.BoxedArray

Methods

compare :: Array a -> Array a -> Ordering #

(<) :: Array a -> Array a -> Bool #

(<=) :: Array a -> Array a -> Bool #

(>) :: Array a -> Array a -> Bool #

(>=) :: Array a -> Array a -> Bool #

max :: Array a -> Array a -> Array a #

min :: Array a -> Array a -> Array a #

PrimType ty => From (Array ty) (Block ty) 
Instance details

Defined in Basement.From

Methods

from :: Array ty -> Block ty #

PrimType ty => From (Array ty) (UArray ty) 
Instance details

Defined in Basement.From

Methods

from :: Array ty -> UArray ty #

PrimType ty => From (UArray ty) (Array ty) 
Instance details

Defined in Basement.From

Methods

from :: UArray ty -> Array ty #

(NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty) => TryFrom (Array ty) (BlockN n ty) 
Instance details

Defined in Basement.From

Methods

tryFrom :: Array ty -> Maybe (BlockN n ty) #

(NatWithinBound Int n, PrimType ty) => From (BlockN n ty) (Array ty) 
Instance details

Defined in Basement.From

Methods

from :: BlockN n ty -> Array ty #

type Item (Array ty) 
Instance details

Defined in Basement.BoxedArray

type Item (Array ty) = ty
type Mutable (Array ty) # 
Instance details

Defined in Foundation.Collection.Buildable

type Mutable (Array ty) = MArray ty
type Step (Array ty) # 
Instance details

Defined in Foundation.Collection.Buildable

type Step (Array ty) = ty
type Element (Array ty) # 
Instance details

Defined in Foundation.Collection.Element

type Element (Array ty) = ty

data MArray a st #

Mutable Array of a

Instances

Instances details
MutableCollection (MArray ty) # 
Instance details

Defined in Foundation.Collection.Mutable

Associated Types

type MutableFreezed (MArray ty) #

type MutableKey (MArray ty) #

type MutableValue (MArray ty) #

Methods

unsafeThaw :: PrimMonad prim => MutableFreezed (MArray ty) -> prim (MArray ty (PrimState prim)) #

unsafeFreeze :: PrimMonad prim => MArray ty (PrimState prim) -> prim (MutableFreezed (MArray ty)) #

thaw :: PrimMonad prim => MutableFreezed (MArray ty) -> prim (MArray ty (PrimState prim)) #

freeze :: PrimMonad prim => MArray ty (PrimState prim) -> prim (MutableFreezed (MArray ty)) #

mutNew :: PrimMonad prim => CountOf (MutableValue (MArray ty)) -> prim (MArray ty (PrimState prim)) #

mutUnsafeWrite :: PrimMonad prim => MArray ty (PrimState prim) -> MutableKey (MArray ty) -> MutableValue (MArray ty) -> prim () #

mutWrite :: PrimMonad prim => MArray ty (PrimState prim) -> MutableKey (MArray ty) -> MutableValue (MArray ty) -> prim () #

mutUnsafeRead :: PrimMonad prim => MArray ty (PrimState prim) -> MutableKey (MArray ty) -> prim (MutableValue (MArray ty)) #

mutRead :: PrimMonad prim => MArray ty (PrimState prim) -> MutableKey (MArray ty) -> prim (MutableValue (MArray ty)) #

(PrimMonad prim, st ~ PrimState prim) => RandomAccess (MArray ty st) prim ty 
Instance details

Defined in Basement.BoxedArray

Methods

read :: MArray ty st -> Offset ty -> prim ty

write :: MArray ty st -> Offset ty -> ty -> prim ()

type MutableFreezed (MArray ty) # 
Instance details

Defined in Foundation.Collection.Mutable

type MutableFreezed (MArray ty) = Array ty
type MutableKey (MArray ty) # 
Instance details

Defined in Foundation.Collection.Mutable

type MutableKey (MArray ty) = Offset ty
type MutableValue (MArray ty) # 
Instance details

Defined in Foundation.Collection.Mutable

type MutableValue (MArray ty) = ty

data UArray ty #

An array of type built on top of GHC primitive.

The elements need to have fixed sized and the representation is a packed contiguous array in memory that can easily be passed to foreign interface

Instances

Instances details
From AsciiString (UArray Word8) 
Instance details

Defined in Basement.From

From String (UArray Word8) 
Instance details

Defined in Basement.From

Methods

from :: String -> UArray Word8 #

Data ty => Data (UArray ty) 
Instance details

Defined in Basement.UArray.Base

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UArray ty -> c (UArray ty) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (UArray ty) #

toConstr :: UArray ty -> Constr #

dataTypeOf :: UArray ty -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (UArray ty)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (UArray ty)) #

gmapT :: (forall b. Data b => b -> b) -> UArray ty -> UArray ty #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UArray ty -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UArray ty -> r #

gmapQ :: (forall d. Data d => d -> u) -> UArray ty -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> UArray ty -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> UArray ty -> m (UArray ty) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UArray ty -> m (UArray ty) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UArray ty -> m (UArray ty) #

PrimType ty => Monoid (UArray ty) 
Instance details

Defined in Basement.UArray.Base

Methods

mempty :: UArray ty #

mappend :: UArray ty -> UArray ty -> UArray ty #

mconcat :: [UArray ty] -> UArray ty #

PrimType ty => Semigroup (UArray ty) 
Instance details

Defined in Basement.UArray.Base

Methods

(<>) :: UArray ty -> UArray ty -> UArray ty #

sconcat :: NonEmpty (UArray ty) -> UArray ty #

stimes :: Integral b => b -> UArray ty -> UArray ty #

PrimType ty => IsList (UArray ty) 
Instance details

Defined in Basement.UArray.Base

Associated Types

type Item (UArray ty) #

Methods

fromList :: [Item (UArray ty)] -> UArray ty #

fromListN :: Int -> [Item (UArray ty)] -> UArray ty #

toList :: UArray ty -> [Item (UArray ty)] #

(PrimType ty, Show ty) => Show (UArray ty) 
Instance details

Defined in Basement.UArray.Base

Methods

showsPrec :: Int -> UArray ty -> ShowS #

show :: UArray ty -> String #

showList :: [UArray ty] -> ShowS #

NormalForm (UArray ty) 
Instance details

Defined in Basement.UArray.Base

Methods

toNormalForm :: UArray ty -> () #

PrimType ty => Buildable (UArray ty) # 
Instance details

Defined in Foundation.Collection.Buildable

Associated Types

type Mutable (UArray ty) :: Type -> Type #

type Step (UArray ty) #

Methods

append :: forall (prim :: Type -> Type) err. PrimMonad prim => Element (UArray ty) -> Builder (UArray ty) (Mutable (UArray ty)) (Step (UArray ty)) prim err () #

build :: PrimMonad prim => Int -> Builder (UArray ty) (Mutable (UArray ty)) (Step (UArray ty)) prim err () -> prim (Either err (UArray ty)) #

PrimType ty => Collection (UArray ty) # 
Instance details

Defined in Foundation.Collection.Collection

Methods

null :: UArray ty -> Bool #

length :: UArray ty -> CountOf (Element (UArray ty)) #

elem :: (Eq a, a ~ Element (UArray ty)) => Element (UArray ty) -> UArray ty -> Bool #

notElem :: (Eq a, a ~ Element (UArray ty)) => Element (UArray ty) -> UArray ty -> Bool #

maximum :: (Ord a, a ~ Element (UArray ty)) => NonEmpty (UArray ty) -> Element (UArray ty) #

minimum :: (Ord a, a ~ Element (UArray ty)) => NonEmpty (UArray ty) -> Element (UArray ty) #

any :: (Element (UArray ty) -> Bool) -> UArray ty -> Bool #

all :: (Element (UArray ty) -> Bool) -> UArray ty -> Bool #

PrimType ty => Copy (UArray ty) # 
Instance details

Defined in Foundation.Collection.Copy

Methods

copy :: UArray ty -> UArray ty #

PrimType ty => Fold1able (UArray ty) # 
Instance details

Defined in Foundation.Collection.Foldable

Methods

foldl1' :: (Element (UArray ty) -> Element (UArray ty) -> Element (UArray ty)) -> NonEmpty (UArray ty) -> Element (UArray ty) #

foldr1 :: (Element (UArray ty) -> Element (UArray ty) -> Element (UArray ty)) -> NonEmpty (UArray ty) -> Element (UArray ty) #

PrimType ty => Foldable (UArray ty) # 
Instance details

Defined in Foundation.Collection.Foldable

Methods

foldl' :: (a -> Element (UArray ty) -> a) -> a -> UArray ty -> a #

foldr :: (Element (UArray ty) -> a -> a) -> a -> UArray ty -> a #

foldr' :: (Element (UArray ty) -> a -> a) -> a -> UArray ty -> a #

PrimType ty => IndexedCollection (UArray ty) # 
Instance details

Defined in Foundation.Collection.Indexed

Methods

(!) :: UArray ty -> Offset (Element (UArray ty)) -> Maybe (Element (UArray ty)) #

findIndex :: (Element (UArray ty) -> Bool) -> UArray ty -> Maybe (Offset (Element (UArray ty))) #

PrimType ty => InnerFunctor (UArray ty) # 
Instance details

Defined in Foundation.Collection.InnerFunctor

Methods

imap :: (Element (UArray ty) -> Element (UArray ty)) -> UArray ty -> UArray ty #

PrimType ty => Sequential (UArray ty) # 
Instance details

Defined in Foundation.Collection.Sequential

Methods

take :: CountOf (Element (UArray ty)) -> UArray ty -> UArray ty #

revTake :: CountOf (Element (UArray ty)) -> UArray ty -> UArray ty #

drop :: CountOf (Element (UArray ty)) -> UArray ty -> UArray ty #

revDrop :: CountOf (Element (UArray ty)) -> UArray ty -> UArray ty #

splitAt :: CountOf (Element (UArray ty)) -> UArray ty -> (UArray ty, UArray ty) #

revSplitAt :: CountOf (Element (UArray ty)) -> UArray ty -> (UArray ty, UArray ty) #

splitOn :: (Element (UArray ty) -> Bool) -> UArray ty -> [UArray ty] #

break :: (Element (UArray ty) -> Bool) -> UArray ty -> (UArray ty, UArray ty) #

breakEnd :: (Element (UArray ty) -> Bool) -> UArray ty -> (UArray ty, UArray ty) #

breakElem :: Element (UArray ty) -> UArray ty -> (UArray ty, UArray ty) #

takeWhile :: (Element (UArray ty) -> Bool) -> UArray ty -> UArray ty #

dropWhile :: (Element (UArray ty) -> Bool) -> UArray ty -> UArray ty #

intersperse :: Element (UArray ty) -> UArray ty -> UArray ty #

intercalate :: Element (UArray ty) -> UArray ty -> Element (UArray ty) #

span :: (Element (UArray ty) -> Bool) -> UArray ty -> (UArray ty, UArray ty) #

spanEnd :: (Element (UArray ty) -> Bool) -> UArray ty -> (UArray ty, UArray ty) #

filter :: (Element (UArray ty) -> Bool) -> UArray ty -> UArray ty #

partition :: (Element (UArray ty) -> Bool) -> UArray ty -> (UArray ty, UArray ty) #

reverse :: UArray ty -> UArray ty #

uncons :: UArray ty -> Maybe (Element (UArray ty), UArray ty) #

unsnoc :: UArray ty -> Maybe (UArray ty, Element (UArray ty)) #

snoc :: UArray ty -> Element (UArray ty) -> UArray ty #

cons :: Element (UArray ty) -> UArray ty -> UArray ty #

find :: (Element (UArray ty) -> Bool) -> UArray ty -> Maybe (Element (UArray ty)) #

sortBy :: (Element (UArray ty) -> Element (UArray ty) -> Ordering) -> UArray ty -> UArray ty #

singleton :: Element (UArray ty) -> UArray ty #

head :: NonEmpty (UArray ty) -> Element (UArray ty) #

last :: NonEmpty (UArray ty) -> Element (UArray ty) #

tail :: NonEmpty (UArray ty) -> UArray ty #

init :: NonEmpty (UArray ty) -> UArray ty #

replicate :: CountOf (Element (UArray ty)) -> Element (UArray ty) -> UArray ty #

isPrefixOf :: UArray ty -> UArray ty -> Bool #

isSuffixOf :: UArray ty -> UArray ty -> Bool #

isInfixOf :: UArray ty -> UArray ty -> Bool #

stripPrefix :: UArray ty -> UArray ty -> Maybe (UArray ty) #

stripSuffix :: UArray ty -> UArray ty -> Maybe (UArray ty) #

PrimType ty => Zippable (UArray ty) # 
Instance details

Defined in Foundation.Collection.Zippable

Methods

zipWith :: (Sequential a, Sequential b) => (Element a -> Element b -> Element (UArray ty)) -> a -> b -> UArray ty #

zipWith3 :: (Sequential a, Sequential b, Sequential c) => (Element a -> Element b -> Element c -> Element (UArray ty)) -> a -> b -> c -> UArray ty #

zipWith4 :: (Sequential a, Sequential b, Sequential c, Sequential d) => (Element a -> Element b -> Element c -> Element d -> Element (UArray ty)) -> a -> b -> c -> d -> UArray ty #

zipWith5 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e) => (Element a -> Element b -> Element c -> Element d -> Element e -> Element (UArray ty)) -> a -> b -> c -> d -> e -> UArray ty #

zipWith6 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Sequential f) => (Element a -> Element b -> Element c -> Element d -> Element e -> Element f -> Element (UArray ty)) -> a -> b -> c -> d -> e -> f -> UArray ty #

zipWith7 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Sequential f, Sequential g) => (Element a -> Element b -> Element c -> Element d -> Element e -> Element f -> Element g -> Element (UArray ty)) -> a -> b -> c -> d -> e -> f -> g -> UArray ty #

PrimType a => Hashable (UArray a) # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => UArray a -> st -> st #

(PrimType ty, Eq ty) => Eq (UArray ty) 
Instance details

Defined in Basement.UArray.Base

Methods

(==) :: UArray ty -> UArray ty -> Bool #

(/=) :: UArray ty -> UArray ty -> Bool #

(PrimType ty, Ord ty) => Ord (UArray ty) 
Instance details

Defined in Basement.UArray.Base

Methods

compare :: UArray ty -> UArray ty -> Ordering #

(<) :: UArray ty -> UArray ty -> Bool #

(<=) :: UArray ty -> UArray ty -> Bool #

(>) :: UArray ty -> UArray ty -> Bool #

(>=) :: UArray ty -> UArray ty -> Bool #

max :: UArray ty -> UArray ty -> UArray ty #

min :: UArray ty -> UArray ty -> UArray ty #

TryFrom (UArray Word8) String 
Instance details

Defined in Basement.From

PrimType ty => From (Block ty) (UArray ty) 
Instance details

Defined in Basement.From

Methods

from :: Block ty -> UArray ty #

PrimType ty => From (Array ty) (UArray ty) 
Instance details

Defined in Basement.From

Methods

from :: Array ty -> UArray ty #

PrimType ty => From (UArray ty) (Block ty) 
Instance details

Defined in Basement.From

Methods

from :: UArray ty -> Block ty #

PrimType ty => From (UArray ty) (Array ty) 
Instance details

Defined in Basement.From

Methods

from :: UArray ty -> Array ty #

(NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty) => TryFrom (UArray ty) (BlockN n ty) 
Instance details

Defined in Basement.From

Methods

tryFrom :: UArray ty -> Maybe (BlockN n ty) #

(NatWithinBound Int n, PrimType ty) => From (BlockN n ty) (UArray ty) 
Instance details

Defined in Basement.From

Methods

from :: BlockN n ty -> UArray ty #

type Item (UArray ty) 
Instance details

Defined in Basement.UArray.Base

type Item (UArray ty) = ty
type Mutable (UArray ty) # 
Instance details

Defined in Foundation.Collection.Buildable

type Mutable (UArray ty) = MUArray ty
type Step (UArray ty) # 
Instance details

Defined in Foundation.Collection.Buildable

type Step (UArray ty) = ty
type Element (UArray ty) # 
Instance details

Defined in Foundation.Collection.Element

type Element (UArray ty) = ty

data MUArray ty st #

A Mutable array of types built on top of GHC primitive.

Element in this array can be modified in place.

Instances

Instances details
PrimType ty => MutableCollection (MUArray ty) # 
Instance details

Defined in Foundation.Collection.Mutable

Associated Types

type MutableFreezed (MUArray ty) #

type MutableKey (MUArray ty) #

type MutableValue (MUArray ty) #

Methods

unsafeThaw :: PrimMonad prim => MutableFreezed (MUArray ty) -> prim (MUArray ty (PrimState prim)) #

unsafeFreeze :: PrimMonad prim => MUArray ty (PrimState prim) -> prim (MutableFreezed (MUArray ty)) #

thaw :: PrimMonad prim => MutableFreezed (MUArray ty) -> prim (MUArray ty (PrimState prim)) #

freeze :: PrimMonad prim => MUArray ty (PrimState prim) -> prim (MutableFreezed (MUArray ty)) #

mutNew :: PrimMonad prim => CountOf (MutableValue (MUArray ty)) -> prim (MUArray ty (PrimState prim)) #

mutUnsafeWrite :: PrimMonad prim => MUArray ty (PrimState prim) -> MutableKey (MUArray ty) -> MutableValue (MUArray ty) -> prim () #

mutWrite :: PrimMonad prim => MUArray ty (PrimState prim) -> MutableKey (MUArray ty) -> MutableValue (MUArray ty) -> prim () #

mutUnsafeRead :: PrimMonad prim => MUArray ty (PrimState prim) -> MutableKey (MUArray ty) -> prim (MutableValue (MUArray ty)) #

mutRead :: PrimMonad prim => MUArray ty (PrimState prim) -> MutableKey (MUArray ty) -> prim (MutableValue (MUArray ty)) #

type MutableFreezed (MUArray ty) # 
Instance details

Defined in Foundation.Collection.Mutable

type MutableKey (MUArray ty) # 
Instance details

Defined in Foundation.Collection.Mutable

type MutableKey (MUArray ty) = Offset ty
type MutableValue (MUArray ty) # 
Instance details

Defined in Foundation.Collection.Mutable

type MutableValue (MUArray ty) = ty

data ChunkedUArray ty #

Instances

Instances details
Monoid (ChunkedUArray a) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

Semigroup (ChunkedUArray a) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

Methods

(<>) :: ChunkedUArray a -> ChunkedUArray a -> ChunkedUArray a #

sconcat :: NonEmpty (ChunkedUArray a) -> ChunkedUArray a #

stimes :: Integral b => b -> ChunkedUArray a -> ChunkedUArray a #

PrimType ty => IsList (ChunkedUArray ty) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

Associated Types

type Item (ChunkedUArray ty) #

(PrimType ty, Show ty) => Show (ChunkedUArray ty) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

Methods

showsPrec :: Int -> ChunkedUArray ty -> ShowS #

show :: ChunkedUArray ty -> String #

showList :: [ChunkedUArray ty] -> ShowS #

NormalForm (ChunkedUArray ty) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

Methods

toNormalForm :: ChunkedUArray ty -> () #

PrimType ty => Collection (ChunkedUArray ty) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

PrimType ty => Foldable (ChunkedUArray ty) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

Methods

foldl' :: (a -> Element (ChunkedUArray ty) -> a) -> a -> ChunkedUArray ty -> a #

foldr :: (Element (ChunkedUArray ty) -> a -> a) -> a -> ChunkedUArray ty -> a #

foldr' :: (Element (ChunkedUArray ty) -> a -> a) -> a -> ChunkedUArray ty -> a #

PrimType ty => IndexedCollection (ChunkedUArray ty) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

PrimType ty => Sequential (ChunkedUArray ty) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

Methods

take :: CountOf (Element (ChunkedUArray ty)) -> ChunkedUArray ty -> ChunkedUArray ty #

revTake :: CountOf (Element (ChunkedUArray ty)) -> ChunkedUArray ty -> ChunkedUArray ty #

drop :: CountOf (Element (ChunkedUArray ty)) -> ChunkedUArray ty -> ChunkedUArray ty #

revDrop :: CountOf (Element (ChunkedUArray ty)) -> ChunkedUArray ty -> ChunkedUArray ty #

splitAt :: CountOf (Element (ChunkedUArray ty)) -> ChunkedUArray ty -> (ChunkedUArray ty, ChunkedUArray ty) #

revSplitAt :: CountOf (Element (ChunkedUArray ty)) -> ChunkedUArray ty -> (ChunkedUArray ty, ChunkedUArray ty) #

splitOn :: (Element (ChunkedUArray ty) -> Bool) -> ChunkedUArray ty -> [ChunkedUArray ty] #

break :: (Element (ChunkedUArray ty) -> Bool) -> ChunkedUArray ty -> (ChunkedUArray ty, ChunkedUArray ty) #

breakEnd :: (Element (ChunkedUArray ty) -> Bool) -> ChunkedUArray ty -> (ChunkedUArray ty, ChunkedUArray ty) #

breakElem :: Element (ChunkedUArray ty) -> ChunkedUArray ty -> (ChunkedUArray ty, ChunkedUArray ty) #

takeWhile :: (Element (ChunkedUArray ty) -> Bool) -> ChunkedUArray ty -> ChunkedUArray ty #

dropWhile :: (Element (ChunkedUArray ty) -> Bool) -> ChunkedUArray ty -> ChunkedUArray ty #

intersperse :: Element (ChunkedUArray ty) -> ChunkedUArray ty -> ChunkedUArray ty #

intercalate :: Element (ChunkedUArray ty) -> ChunkedUArray ty -> Element (ChunkedUArray ty) #

span :: (Element (ChunkedUArray ty) -> Bool) -> ChunkedUArray ty -> (ChunkedUArray ty, ChunkedUArray ty) #

spanEnd :: (Element (ChunkedUArray ty) -> Bool) -> ChunkedUArray ty -> (ChunkedUArray ty, ChunkedUArray ty) #

filter :: (Element (ChunkedUArray ty) -> Bool) -> ChunkedUArray ty -> ChunkedUArray ty #

partition :: (Element (ChunkedUArray ty) -> Bool) -> ChunkedUArray ty -> (ChunkedUArray ty, ChunkedUArray ty) #

reverse :: ChunkedUArray ty -> ChunkedUArray ty #

uncons :: ChunkedUArray ty -> Maybe (Element (ChunkedUArray ty), ChunkedUArray ty) #

unsnoc :: ChunkedUArray ty -> Maybe (ChunkedUArray ty, Element (ChunkedUArray ty)) #

snoc :: ChunkedUArray ty -> Element (ChunkedUArray ty) -> ChunkedUArray ty #

cons :: Element (ChunkedUArray ty) -> ChunkedUArray ty -> ChunkedUArray ty #

find :: (Element (ChunkedUArray ty) -> Bool) -> ChunkedUArray ty -> Maybe (Element (ChunkedUArray ty)) #

sortBy :: (Element (ChunkedUArray ty) -> Element (ChunkedUArray ty) -> Ordering) -> ChunkedUArray ty -> ChunkedUArray ty #

singleton :: Element (ChunkedUArray ty) -> ChunkedUArray ty #

head :: NonEmpty (ChunkedUArray ty) -> Element (ChunkedUArray ty) #

last :: NonEmpty (ChunkedUArray ty) -> Element (ChunkedUArray ty) #

tail :: NonEmpty (ChunkedUArray ty) -> ChunkedUArray ty #

init :: NonEmpty (ChunkedUArray ty) -> ChunkedUArray ty #

replicate :: CountOf (Element (ChunkedUArray ty)) -> Element (ChunkedUArray ty) -> ChunkedUArray ty #

isPrefixOf :: ChunkedUArray ty -> ChunkedUArray ty -> Bool #

isSuffixOf :: ChunkedUArray ty -> ChunkedUArray ty -> Bool #

isInfixOf :: ChunkedUArray ty -> ChunkedUArray ty -> Bool #

stripPrefix :: ChunkedUArray ty -> ChunkedUArray ty -> Maybe (ChunkedUArray ty) #

stripSuffix :: ChunkedUArray ty -> ChunkedUArray ty -> Maybe (ChunkedUArray ty) #

PrimType ty => Eq (ChunkedUArray ty) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

(PrimType ty, Ord ty) => Ord (ChunkedUArray ty) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

type Item (ChunkedUArray ty) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

type Item (ChunkedUArray ty) = ty
type Element (ChunkedUArray ty) # 
Instance details

Defined in Foundation.Array.Chunked.Unboxed

type Element (ChunkedUArray ty) = ty

data Bitmap #

Instances

Instances details
Monoid Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

Semigroup Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

Methods

(<>) :: Bitmap -> Bitmap -> Bitmap #

sconcat :: NonEmpty Bitmap -> Bitmap #

stimes :: Integral b => b -> Bitmap -> Bitmap #

IsList Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

Associated Types

type Item Bitmap #

Show Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

Methods

showsPrec :: Int -> Bitmap -> ShowS #

show :: Bitmap -> String #

showList :: [Bitmap] -> ShowS #

Collection Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

Foldable Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

Methods

foldl' :: (a -> Element Bitmap -> a) -> a -> Bitmap -> a #

foldr :: (Element Bitmap -> a -> a) -> a -> Bitmap -> a #

foldr' :: (Element Bitmap -> a -> a) -> a -> Bitmap -> a #

IndexedCollection Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

InnerFunctor Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

Sequential Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

Methods

take :: CountOf (Element Bitmap) -> Bitmap -> Bitmap #

revTake :: CountOf (Element Bitmap) -> Bitmap -> Bitmap #

drop :: CountOf (Element Bitmap) -> Bitmap -> Bitmap #

revDrop :: CountOf (Element Bitmap) -> Bitmap -> Bitmap #

splitAt :: CountOf (Element Bitmap) -> Bitmap -> (Bitmap, Bitmap) #

revSplitAt :: CountOf (Element Bitmap) -> Bitmap -> (Bitmap, Bitmap) #

splitOn :: (Element Bitmap -> Bool) -> Bitmap -> [Bitmap] #

break :: (Element Bitmap -> Bool) -> Bitmap -> (Bitmap, Bitmap) #

breakEnd :: (Element Bitmap -> Bool) -> Bitmap -> (Bitmap, Bitmap) #

breakElem :: Element Bitmap -> Bitmap -> (Bitmap, Bitmap) #

takeWhile :: (Element Bitmap -> Bool) -> Bitmap -> Bitmap #

dropWhile :: (Element Bitmap -> Bool) -> Bitmap -> Bitmap #

intersperse :: Element Bitmap -> Bitmap -> Bitmap #

intercalate :: Element Bitmap -> Bitmap -> Element Bitmap #

span :: (Element Bitmap -> Bool) -> Bitmap -> (Bitmap, Bitmap) #

spanEnd :: (Element Bitmap -> Bool) -> Bitmap -> (Bitmap, Bitmap) #

filter :: (Element Bitmap -> Bool) -> Bitmap -> Bitmap #

partition :: (Element Bitmap -> Bool) -> Bitmap -> (Bitmap, Bitmap) #

reverse :: Bitmap -> Bitmap #

uncons :: Bitmap -> Maybe (Element Bitmap, Bitmap) #

unsnoc :: Bitmap -> Maybe (Bitmap, Element Bitmap) #

snoc :: Bitmap -> Element Bitmap -> Bitmap #

cons :: Element Bitmap -> Bitmap -> Bitmap #

find :: (Element Bitmap -> Bool) -> Bitmap -> Maybe (Element Bitmap) #

sortBy :: (Element Bitmap -> Element Bitmap -> Ordering) -> Bitmap -> Bitmap #

singleton :: Element Bitmap -> Bitmap #

head :: NonEmpty Bitmap -> Element Bitmap #

last :: NonEmpty Bitmap -> Element Bitmap #

tail :: NonEmpty Bitmap -> Bitmap #

init :: NonEmpty Bitmap -> Bitmap #

replicate :: CountOf (Element Bitmap) -> Element Bitmap -> Bitmap #

isPrefixOf :: Bitmap -> Bitmap -> Bool #

isSuffixOf :: Bitmap -> Bitmap -> Bool #

isInfixOf :: Bitmap -> Bitmap -> Bool #

stripPrefix :: Bitmap -> Bitmap -> Maybe Bitmap #

stripSuffix :: Bitmap -> Bitmap -> Maybe Bitmap #

Eq Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

Methods

(==) :: Bitmap -> Bitmap -> Bool #

(/=) :: Bitmap -> Bitmap -> Bool #

Ord Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

type Item Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

type Element Bitmap # 
Instance details

Defined in Foundation.Array.Bitmap

data MutableBitmap st #

Instances

Instances details
MutableCollection MutableBitmap # 
Instance details

Defined in Foundation.Array.Bitmap

type MutableFreezed MutableBitmap # 
Instance details

Defined in Foundation.Array.Bitmap

type MutableKey MutableBitmap # 
Instance details

Defined in Foundation.Array.Bitmap

type MutableValue MutableBitmap # 
Instance details

Defined in Foundation.Array.Bitmap

class Eq ty => PrimType ty #

Represent the accessor for types that can be stored in the UArray and MUArray.

Types need to be a instance of storable and have fixed sized.

Instances

Instances details
PrimType CChar 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize CChar :: Nat #

Methods

primSizeInBytes :: Proxy CChar -> CountOf Word8 #

primShiftToBytes :: Proxy CChar -> Int #

primBaUIndex :: ByteArray# -> Offset CChar -> CChar #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset CChar -> prim CChar #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset CChar -> CChar -> prim () #

primAddrIndex :: Addr# -> Offset CChar -> CChar #

primAddrRead :: PrimMonad prim => Addr# -> Offset CChar -> prim CChar #

primAddrWrite :: PrimMonad prim => Addr# -> Offset CChar -> CChar -> prim () #

PrimType CUChar 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize CUChar :: Nat #

Methods

primSizeInBytes :: Proxy CUChar -> CountOf Word8 #

primShiftToBytes :: Proxy CUChar -> Int #

primBaUIndex :: ByteArray# -> Offset CUChar -> CUChar #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset CUChar -> prim CUChar #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset CUChar -> CUChar -> prim () #

primAddrIndex :: Addr# -> Offset CUChar -> CUChar #

primAddrRead :: PrimMonad prim => Addr# -> Offset CUChar -> prim CUChar #

primAddrWrite :: PrimMonad prim => Addr# -> Offset CUChar -> CUChar -> prim () #

PrimType Int16 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Int16 :: Nat #

Methods

primSizeInBytes :: Proxy Int16 -> CountOf Word8 #

primShiftToBytes :: Proxy Int16 -> Int #

primBaUIndex :: ByteArray# -> Offset Int16 -> Int16 #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int16 -> prim Int16 #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int16 -> Int16 -> prim () #

primAddrIndex :: Addr# -> Offset Int16 -> Int16 #

primAddrRead :: PrimMonad prim => Addr# -> Offset Int16 -> prim Int16 #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Int16 -> Int16 -> prim () #

PrimType Int32 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Int32 :: Nat #

Methods

primSizeInBytes :: Proxy Int32 -> CountOf Word8 #

primShiftToBytes :: Proxy Int32 -> Int #

primBaUIndex :: ByteArray# -> Offset Int32 -> Int32 #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int32 -> prim Int32 #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int32 -> Int32 -> prim () #

primAddrIndex :: Addr# -> Offset Int32 -> Int32 #

primAddrRead :: PrimMonad prim => Addr# -> Offset Int32 -> prim Int32 #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Int32 -> Int32 -> prim () #

PrimType Int64 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Int64 :: Nat #

Methods

primSizeInBytes :: Proxy Int64 -> CountOf Word8 #

primShiftToBytes :: Proxy Int64 -> Int #

primBaUIndex :: ByteArray# -> Offset Int64 -> Int64 #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int64 -> prim Int64 #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int64 -> Int64 -> prim () #

primAddrIndex :: Addr# -> Offset Int64 -> Int64 #

primAddrRead :: PrimMonad prim => Addr# -> Offset Int64 -> prim Int64 #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Int64 -> Int64 -> prim () #

PrimType Int8 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Int8 :: Nat #

Methods

primSizeInBytes :: Proxy Int8 -> CountOf Word8 #

primShiftToBytes :: Proxy Int8 -> Int #

primBaUIndex :: ByteArray# -> Offset Int8 -> Int8 #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int8 -> prim Int8 #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int8 -> Int8 -> prim () #

primAddrIndex :: Addr# -> Offset Int8 -> Int8 #

primAddrRead :: PrimMonad prim => Addr# -> Offset Int8 -> prim Int8 #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Int8 -> Int8 -> prim () #

PrimType Word16 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word16 :: Nat #

Methods

primSizeInBytes :: Proxy Word16 -> CountOf Word8 #

primShiftToBytes :: Proxy Word16 -> Int #

primBaUIndex :: ByteArray# -> Offset Word16 -> Word16 #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word16 -> prim Word16 #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word16 -> Word16 -> prim () #

primAddrIndex :: Addr# -> Offset Word16 -> Word16 #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word16 -> prim Word16 #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word16 -> Word16 -> prim () #

PrimType Word32 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word32 :: Nat #

Methods

primSizeInBytes :: Proxy Word32 -> CountOf Word8 #

primShiftToBytes :: Proxy Word32 -> Int #

primBaUIndex :: ByteArray# -> Offset Word32 -> Word32 #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word32 -> prim Word32 #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word32 -> Word32 -> prim () #

primAddrIndex :: Addr# -> Offset Word32 -> Word32 #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word32 -> prim Word32 #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word32 -> Word32 -> prim () #

PrimType Word64 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word64 :: Nat #

Methods

primSizeInBytes :: Proxy Word64 -> CountOf Word8 #

primShiftToBytes :: Proxy Word64 -> Int #

primBaUIndex :: ByteArray# -> Offset Word64 -> Word64 #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word64 -> prim Word64 #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word64 -> Word64 -> prim () #

primAddrIndex :: Addr# -> Offset Word64 -> Word64 #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word64 -> prim Word64 #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word64 -> Word64 -> prim () #

PrimType Word8 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word8 :: Nat #

Methods

primSizeInBytes :: Proxy Word8 -> CountOf Word8 #

primShiftToBytes :: Proxy Word8 -> Int #

primBaUIndex :: ByteArray# -> Offset Word8 -> Word8 #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word8 -> prim Word8 #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word8 -> Word8 -> prim () #

primAddrIndex :: Addr# -> Offset Word8 -> Word8 #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word8 -> prim Word8 #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word8 -> Word8 -> prim () #

PrimType Char7 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Char7 :: Nat #

Methods

primSizeInBytes :: Proxy Char7 -> CountOf Word8 #

primShiftToBytes :: Proxy Char7 -> Int #

primBaUIndex :: ByteArray# -> Offset Char7 -> Char7 #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Char7 -> prim Char7 #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Char7 -> Char7 -> prim () #

primAddrIndex :: Addr# -> Offset Char7 -> Char7 #

primAddrRead :: PrimMonad prim => Addr# -> Offset Char7 -> prim Char7 #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Char7 -> Char7 -> prim () #

PrimType Word128 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word128 :: Nat #

Methods

primSizeInBytes :: Proxy Word128 -> CountOf Word8 #

primShiftToBytes :: Proxy Word128 -> Int #

primBaUIndex :: ByteArray# -> Offset Word128 -> Word128 #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word128 -> prim Word128 #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word128 -> Word128 -> prim () #

primAddrIndex :: Addr# -> Offset Word128 -> Word128 #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word128 -> prim Word128 #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word128 -> Word128 -> prim () #

PrimType Word256 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word256 :: Nat #

Methods

primSizeInBytes :: Proxy Word256 -> CountOf Word8 #

primShiftToBytes :: Proxy Word256 -> Int #

primBaUIndex :: ByteArray# -> Offset Word256 -> Word256 #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word256 -> prim Word256 #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word256 -> Word256 -> prim () #

primAddrIndex :: Addr# -> Offset Word256 -> Word256 #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word256 -> prim Word256 #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word256 -> Word256 -> prim () #

PrimType NanoSeconds # 
Instance details

Defined in Foundation.Time.Types

Associated Types

type PrimSize NanoSeconds :: Nat #

PrimType Seconds # 
Instance details

Defined in Foundation.Time.Types

Associated Types

type PrimSize Seconds :: Nat #

Methods

primSizeInBytes :: Proxy Seconds -> CountOf Word8 #

primShiftToBytes :: Proxy Seconds -> Int #

primBaUIndex :: ByteArray# -> Offset Seconds -> Seconds #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Seconds -> prim Seconds #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Seconds -> Seconds -> prim () #

primAddrIndex :: Addr# -> Offset Seconds -> Seconds #

primAddrRead :: PrimMonad prim => Addr# -> Offset Seconds -> prim Seconds #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Seconds -> Seconds -> prim () #

PrimType Char 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Char :: Nat #

Methods

primSizeInBytes :: Proxy Char -> CountOf Word8 #

primShiftToBytes :: Proxy Char -> Int #

primBaUIndex :: ByteArray# -> Offset Char -> Char #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Char -> prim Char #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Char -> Char -> prim () #

primAddrIndex :: Addr# -> Offset Char -> Char #

primAddrRead :: PrimMonad prim => Addr# -> Offset Char -> prim Char #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Char -> Char -> prim () #

PrimType Double 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Double :: Nat #

Methods

primSizeInBytes :: Proxy Double -> CountOf Word8 #

primShiftToBytes :: Proxy Double -> Int #

primBaUIndex :: ByteArray# -> Offset Double -> Double #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Double -> prim Double #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Double -> Double -> prim () #

primAddrIndex :: Addr# -> Offset Double -> Double #

primAddrRead :: PrimMonad prim => Addr# -> Offset Double -> prim Double #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Double -> Double -> prim () #

PrimType Float 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Float :: Nat #

Methods

primSizeInBytes :: Proxy Float -> CountOf Word8 #

primShiftToBytes :: Proxy Float -> Int #

primBaUIndex :: ByteArray# -> Offset Float -> Float #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Float -> prim Float #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Float -> Float -> prim () #

primAddrIndex :: Addr# -> Offset Float -> Float #

primAddrRead :: PrimMonad prim => Addr# -> Offset Float -> prim Float #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Float -> Float -> prim () #

PrimType Int 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Int :: Nat #

Methods

primSizeInBytes :: Proxy Int -> CountOf Word8 #

primShiftToBytes :: Proxy Int -> Int #

primBaUIndex :: ByteArray# -> Offset Int -> Int #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int -> prim Int #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Int -> Int -> prim () #

primAddrIndex :: Addr# -> Offset Int -> Int #

primAddrRead :: PrimMonad prim => Addr# -> Offset Int -> prim Int #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Int -> Int -> prim () #

PrimType Word 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize Word :: Nat #

Methods

primSizeInBytes :: Proxy Word -> CountOf Word8 #

primShiftToBytes :: Proxy Word -> Int #

primBaUIndex :: ByteArray# -> Offset Word -> Word #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word -> prim Word #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset Word -> Word -> prim () #

primAddrIndex :: Addr# -> Offset Word -> Word #

primAddrRead :: PrimMonad prim => Addr# -> Offset Word -> prim Word #

primAddrWrite :: PrimMonad prim => Addr# -> Offset Word -> Word -> prim () #

PrimType a => PrimType (BE a) 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize (BE a) :: Nat #

Methods

primSizeInBytes :: Proxy (BE a) -> CountOf Word8 #

primShiftToBytes :: Proxy (BE a) -> Int #

primBaUIndex :: ByteArray# -> Offset (BE a) -> BE a #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset (BE a) -> prim (BE a) #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset (BE a) -> BE a -> prim () #

primAddrIndex :: Addr# -> Offset (BE a) -> BE a #

primAddrRead :: PrimMonad prim => Addr# -> Offset (BE a) -> prim (BE a) #

primAddrWrite :: PrimMonad prim => Addr# -> Offset (BE a) -> BE a -> prim () #

PrimType a => PrimType (LE a) 
Instance details

Defined in Basement.PrimType

Associated Types

type PrimSize (LE a) :: Nat #

Methods

primSizeInBytes :: Proxy (LE a) -> CountOf Word8 #

primShiftToBytes :: Proxy (LE a) -> Int #

primBaUIndex :: ByteArray# -> Offset (LE a) -> LE a #

primMbaURead :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset (LE a) -> prim (LE a) #

primMbaUWrite :: PrimMonad prim => MutableByteArray# (PrimState prim) -> Offset (LE a) -> LE a -> prim () #

primAddrIndex :: Addr# -> Offset (LE a) -> LE a #

primAddrRead :: PrimMonad prim => Addr# -> Offset (LE a) -> prim (LE a) #

primAddrWrite :: PrimMonad prim => Addr# -> Offset (LE a) -> LE a -> prim () #

data OutOfBound #

Exception during an operation accessing the vector out of bound

Represent the type of operation, the index accessed, and the total length of the vector.

Instances

Instances details
Exception OutOfBound 
Instance details

Defined in Basement.Exception

Show OutOfBound 
Instance details

Defined in Basement.Exception

Methods

showsPrec :: Int -> OutOfBound -> ShowS #

show :: OutOfBound -> String #

showList :: [OutOfBound] -> ShowS #