sized-vector-0.0.2.0: Size-parameterized vector types and functions.

Safe HaskellNone

Data.Vector.Sized

Description

Size-parameterized vector types and functions.

Documentation

data Vector a n whereSource

Constructors

Nil :: Vector a Z 
:- :: a -> Vector a n -> Vector a (S n) 

Instances

Monomorphicable Nat (Vector a) 
Eq a => Eq (Vector a n) 
Show a => Show (Vector a n) 

append :: Vector a n -> Vector a m -> Vector a (n :+: m)Source

foldr :: (a -> b -> b) -> b -> Vector a n -> bSource

foldl :: (a -> b -> a) -> a -> Vector b n -> aSource

zipWith :: (a -> b -> c) -> Vector a n -> Vector b m -> Vector c (Min n m)Source

zipWithSame :: (a -> b -> c) -> Vector a n -> Vector b n -> Vector c nSource

toList :: Vector a n -> [a]Source

fromList :: SNat n -> [a] -> Maybe (Vector a n)Source

unsafeFromList :: SNat n -> [a] -> Vector a nSource

fromList' :: SingRep n => [a] -> Maybe (Vector a n)Source

unsafeFromList' :: SingRep n => [a] -> Vector a nSource

all :: (a -> Bool) -> Vector a n -> BoolSource

splitAt :: (n :<<= m) ~ True => SNat n -> Vector a m -> (Vector a n, Vector a (m :-: n))Source

takeAtMost :: SNat n -> Vector a m -> Vector a (Min n m)Source

splitAtMost :: SNat n -> Vector a m -> (Vector a (Min n m), Vector a (m :-: n))Source

drop :: (n :<<= m) ~ True => SNat n -> Vector a m -> Vector a (m :-: n)Source

take :: (n :<<= m) ~ True => SNat n -> Vector a m -> Vector a nSource

map :: (a -> b) -> Vector a n -> Vector b nSource

head :: Vector a (S n) -> aSource

tail :: Vector a (S n) -> Vector a nSource