-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Size-parameterized vector types and functions. -- -- Size-parameterized vector types and functions using a data-type -- promotion. @package sized-vector @version 0.0.2.0 -- | Size-parameterized vector types and functions. module Data.Vector.Sized data Vector (a :: *) (n :: Nat) Nil :: Vector a Z (:-) :: a -> Vector a n -> Vector a (S n) sLength :: Vector a n -> SNat n length :: Vector a n -> Int append :: Vector a n -> Vector a m -> Vector a (n :+: m) foldr :: (a -> b -> b) -> b -> Vector a n -> b foldl :: (a -> b -> a) -> a -> Vector b n -> a singleton :: a -> Vector a (S Z) zipWith :: (a -> b -> c) -> Vector a n -> Vector b m -> Vector c (Min n m) zipWithSame :: (a -> b -> c) -> Vector a n -> Vector b n -> Vector c n toList :: Vector a n -> [a] fromList :: SNat n -> [a] -> Maybe (Vector a n) unsafeFromList :: SNat n -> [a] -> Vector a n fromList' :: SingRep n => [a] -> Maybe (Vector a n) unsafeFromList' :: SingRep n => [a] -> Vector a n all :: (a -> Bool) -> Vector a n -> Bool splitAt :: (n :<<= m) ~ True => SNat n -> Vector a m -> (Vector a n, Vector a (m :-: n)) takeAtMost :: SNat n -> Vector a m -> Vector a (Min n m) splitAtMost :: SNat n -> Vector a m -> (Vector a (Min n m), Vector a (m :-: n)) drop :: (n :<<= m) ~ True => SNat n -> Vector a m -> Vector a (m :-: n) take :: (n :<<= m) ~ True => SNat n -> Vector a m -> Vector a n map :: (a -> b) -> Vector a n -> Vector b n head :: Vector a (S n) -> a tail :: Vector a (S n) -> Vector a n instance Show a => Show (Vector a n) instance Monomorphicable Nat (Vector a) instance Eq a => Eq (Vector a n)