Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
newtype Vector v (n :: Nat) a Source #
A wrapper to tag vectors with a type level length.
Be careful when using the constructor here to not construct sized vectors which have a different length than that specified in the type parameter!
Vector (v a) |
Instances
Functor v => Functor (Vector v n) Source # | |
KnownNat n => Applicative (Vector Vector n) # | The |
pure :: a -> Vector Vector0 n a # (<*>) :: Vector Vector0 n (a -> b) -> Vector Vector0 n a -> Vector Vector0 n b # liftA2 :: (a -> b -> c) -> Vector Vector0 n a -> Vector Vector0 n b -> Vector Vector0 n c # (*>) :: Vector Vector0 n a -> Vector Vector0 n b -> Vector Vector0 n b # (<*) :: Vector Vector0 n a -> Vector Vector0 n b -> Vector Vector0 n a # | |
Foldable v => Foldable (Vector v n) Source # | |
fold :: Monoid m => Vector v n m -> m # foldMap :: Monoid m => (a -> m) -> Vector v n a -> m # foldr :: (a -> b -> b) -> b -> Vector v n a -> b # foldr' :: (a -> b -> b) -> b -> Vector v n a -> b # foldl :: (b -> a -> b) -> b -> Vector v n a -> b # foldl' :: (b -> a -> b) -> b -> Vector v n a -> b # foldr1 :: (a -> a -> a) -> Vector v n a -> a # foldl1 :: (a -> a -> a) -> Vector v n a -> a # toList :: Vector v n a -> [a] # null :: Vector v n a -> Bool # length :: Vector v n a -> Int # elem :: Eq a => a -> Vector v n a -> Bool # maximum :: Ord a => Vector v n a -> a # minimum :: Ord a => Vector v n a -> a # | |
Traversable v => Traversable (Vector v n) Source # | |
KnownNat n => Distributive (Vector Vector n) # | |
distribute :: Functor f => f (Vector Vector0 n a) -> Vector Vector0 n (f a) # collect :: Functor f => (a -> Vector Vector0 n b) -> f a -> Vector Vector0 n (f b) # distributeM :: Monad m => m (Vector Vector0 n a) -> Vector Vector0 n (m a) # collectM :: Monad m => (a -> Vector Vector0 n b) -> m a -> Vector Vector0 n (m b) # | |
KnownNat n => Representable (Vector Vector n) # | |
Eq1 v => Eq1 (Vector v n) Source # | |
Ord1 v => Ord1 (Vector v n) Source # | |
Show1 v => Show1 (Vector v n) Source # | |
Eq (v a) => Eq (Vector v n a) Source # | |
(Vector v a, Floating a, KnownNat n) => Floating (Vector v n a) # | |
exp :: Vector v n a -> Vector v n a # log :: Vector v n a -> Vector v n a # sqrt :: Vector v n a -> Vector v n a # (**) :: Vector v n a -> Vector v n a -> Vector v n a # logBase :: Vector v n a -> Vector v n a -> Vector v n a # sin :: Vector v n a -> Vector v n a # cos :: Vector v n a -> Vector v n a # tan :: Vector v n a -> Vector v n a # asin :: Vector v n a -> Vector v n a # acos :: Vector v n a -> Vector v n a # atan :: Vector v n a -> Vector v n a # sinh :: Vector v n a -> Vector v n a # cosh :: Vector v n a -> Vector v n a # tanh :: Vector v n a -> Vector v n a # asinh :: Vector v n a -> Vector v n a # acosh :: Vector v n a -> Vector v n a # atanh :: Vector v n a -> Vector v n a # log1p :: Vector v n a -> Vector v n a # expm1 :: Vector v n a -> Vector v n a # | |
(Vector v a, Fractional a, KnownNat n) => Fractional (Vector v n a) # | |
(KnownNat n, Typeable v, Typeable a, Data (v a)) => Data (Vector v n a) Source # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Vector v n a -> c (Vector v n a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Vector v n a) # toConstr :: Vector v n a -> Constr # dataTypeOf :: Vector v n a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Vector v n a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Vector v n a)) # gmapT :: (forall b. Data b => b -> b) -> Vector v n a -> Vector v n a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Vector v n a -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Vector v n a -> r # gmapQ :: (forall d. Data d => d -> u) -> Vector v n a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Vector v n a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Vector v n a -> m (Vector v n a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Vector v n a -> m (Vector v n a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Vector v n a -> m (Vector v n a) # | |
(Vector v a, Num a, KnownNat n) => Num (Vector v n a) # | |
(+) :: Vector v n a -> Vector v n a -> Vector v n a # (-) :: Vector v n a -> Vector v n a -> Vector v n a # (*) :: Vector v n a -> Vector v n a -> Vector v n a # negate :: Vector v n a -> Vector v n a # abs :: Vector v n a -> Vector v n a # signum :: Vector v n a -> Vector v n a # fromInteger :: Integer -> Vector v n a # | |
Ord (v a) => Ord (Vector v n a) Source # | |
(KnownNat n, Vector v a, Read (v a)) => Read (Vector v n a) # | |
Show (v a) => Show (Vector v n a) Source # | |
Generic (Vector v n a) Source # | |
(Semigroup g, Vector v g) => Semigroup (Vector v n g) # | The |
(Monoid m, Vector v m, KnownNat n) => Monoid (Vector v n m) # | The If |
(KnownNat n, Storable a, Vector v a) => Storable (Vector v n a) # | Any sized vector containing storable elements is itself storable. |
sizeOf :: Vector v n a -> Int # alignment :: Vector v n a -> Int # peekElemOff :: Ptr (Vector v n a) -> Int -> IO (Vector v n a) # pokeElemOff :: Ptr (Vector v n a) -> Int -> Vector v n a -> IO () # peekByteOff :: Ptr b -> Int -> IO (Vector v n a) # pokeByteOff :: Ptr b -> Int -> Vector v n a -> IO () # | |
NFData (v a) => NFData (Vector v n a) Source # | |
type Rep (Vector Vector n) # | |
type Mutable (Vector v n) # | |
type Rep (Vector v n a) Source # | |