data LVect : Nat -> Type -> Type
Consumable a => Consumable (LVect n a)
Duplicable a => Duplicable (LVect n a)
lookup : Fin (S n) -@ (LVect (S n) a -@ LPair a (LVect n a))
insertAt : Fin (S n) -@ (a -@ (LVect n a -@ LVect (S n) a))
uncurry : (a -@ (b -@ c)) -@ (LPair a b -@ c)
lookupInsertAtIdentity : (k : Fin (S n)) -> (vs : LVect (S n) a) -> uncurry (insertAt k) (lookup k vs) = vs
insertAtLookupIdentity : (k : Fin (S n)) -> (w : a) -> (vs : LVect n a) -> lookup k (insertAt k w vs) = w # vs
(<$>) : a -@ b -> LVect n a -@ LVect n b
pure : a -> LVect n a
(<*>) : LVect n (a -@ b) -@ (LVect n a -@ LVect n b)
zip : LVect n a -@ (LVect n b -@ LVect n (LPair a b))
unzip : LVect n (LPair a b) -@ LPair (LVect n a) (LVect n b)
splitAt : (1 m : Nat) -> LVect (m + n) a -@ LPair (LVect m a) (LVect n a)
(++) : LVect m a -@ (LVect n a -@ LVect (m + n) a)
lfoldr : (0 p : (Nat -> Type)) -> a -@ (p n -@ p (S n)) -> p 0 -@ (LVect n a -@ p n)
lfoldl : (0 p : (Nat -> Type)) -> a -@ (p n -@ p (S n)) -> p 0 -@ (LVect n a -@ p n)
reverse : LVect m a -@ LVect m a
map : (0 f : a -@ b) -> {auto 1 _ : n `Copies` f} -> LVect n a -@ LVect n b
Map a linear vector
length : Consumable a => LVect n a -@ LNat
Extract all
foldl : (0 f : acc -@ (a -@ acc)) -> {auto 1 _ : n `Copies` f} -> acc -@ (LVect n a -@ acc)
Fold a linear vector.
replicate : (1 n : LNat) -> (0 v : a) -> {auto 1 _ : toNat n `Copies` v} -> LVect (toNat n) a
(>>=) : LVect n a -@ ((0 f : a -@ LVect m b) -> LVect (n * m) b)
Bind a linear vector.
copiesToVect : (n `Copies` v) -@ LVect n a
Extract all the copies into a vector of the same length as the number of copies.