basement-0.0.2: Foundation scrap box of array & string

LicenseBSD-style
MaintainerHaskell Foundation
Safe HaskellNone
LanguageHaskell2010

Basement.BlockN

Description

A Nat-sized version of Block

Documentation

data BlockN n a #

Instances

(NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty) => TryFrom (Block ty) (BlockN n ty) # 

Methods

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

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

Methods

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

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

Methods

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

PrimType a => Eq (BlockN n a) # 

Methods

(==) :: BlockN n a -> BlockN n a -> Bool #

(/=) :: BlockN n a -> BlockN n a -> Bool #

(Show a, PrimType a) => Show (BlockN n a) # 

Methods

showsPrec :: Int -> BlockN n a -> ShowS #

show :: BlockN n a -> String #

showList :: [BlockN n a] -> ShowS #

NormalForm (BlockN n a) # 

Methods

toNormalForm :: BlockN n a -> () #

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

Methods

from :: BlockN n ty -> Array ty #

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

Methods

from :: BlockN n ty -> UArray ty #

From (BlockN n ty) (Block ty) # 

Methods

from :: BlockN n ty -> Block ty #

data MutableBlockN n ty st #

toBlockN :: forall n ty. (PrimType ty, KnownNat n, Countable ty n) => Block ty -> Maybe (BlockN n ty) #

toBlock :: BlockN n ty -> Block ty #

singleton :: PrimType ty => ty -> BlockN 1 ty #

replicate :: forall n ty. (KnownNat n, Countable ty n, PrimType ty) => ty -> BlockN n ty #

thaw :: (KnownNat n, PrimMonad prim, PrimType ty) => BlockN n ty -> prim (MutableBlockN n ty (PrimState prim)) #

freeze :: (PrimMonad prim, PrimType ty, Countable ty n) => MutableBlockN n ty (PrimState prim) -> prim (BlockN n ty) #

index :: forall i n ty. (KnownNat i, CmpNat i n ~ LT, PrimType ty, Offsetable ty i) => BlockN n ty -> ty #

map :: (PrimType a, PrimType b) => (a -> b) -> BlockN n a -> BlockN n b #

foldl' :: PrimType ty => (a -> ty -> a) -> a -> BlockN n ty -> a #

foldr :: PrimType ty => (ty -> a -> a) -> a -> BlockN n ty -> a #

cons :: PrimType ty => ty -> BlockN n ty -> BlockN (n + 1) ty #

snoc :: PrimType ty => BlockN n ty -> ty -> BlockN (n + 1) ty #

elem :: PrimType ty => ty -> BlockN n ty -> Bool #

sub :: forall i j n ty. ((i <=? n) ~ True, (j <=? n) ~ True, (i <=? j) ~ True, PrimType ty, KnownNat i, KnownNat j, Offsetable ty i, Offsetable ty j) => BlockN n ty -> BlockN (j - i) ty #

uncons :: forall n ty. (CmpNat 0 n ~ LT, PrimType ty, KnownNat n, Offsetable ty n) => BlockN n ty -> (ty, BlockN (n - 1) ty) #

unsnoc :: forall n ty. (CmpNat 0 n ~ LT, KnownNat n, PrimType ty, Offsetable ty n) => BlockN n ty -> (BlockN (n - 1) ty, ty) #

splitAt :: forall i n ty. (CmpNat i n ~ LT, PrimType ty, KnownNat i, Countable ty i) => BlockN n ty -> (BlockN i ty, BlockN (n - i) ty) #

all :: PrimType ty => (ty -> Bool) -> BlockN n ty -> Bool #

any :: PrimType ty => (ty -> Bool) -> BlockN n ty -> Bool #

find :: PrimType ty => (ty -> Bool) -> BlockN n ty -> Maybe ty #

reverse :: PrimType ty => BlockN n ty -> BlockN n ty #

sortBy :: PrimType ty => (ty -> ty -> Ordering) -> BlockN n ty -> BlockN n ty #

intersperse :: (CmpNat n 1 ~ GT, PrimType ty) => ty -> BlockN n ty -> BlockN ((n + n) - 1) ty #