mirror of
https://github.com/edwinb/Idris2-boot.git
synced 2024-12-21 11:51:31 +03:00
e6292acdf0
This involved implementing the 'TryWithImplicits' hack for allowing unbound implicits in types with case blocks
16 lines
463 B
Idris
16 lines
463 B
Idris
data Vect : Nat -> Type -> Type where
|
|
Nil : Vect Z a
|
|
(::) : a -> Vect k a -> Vect (S k) a
|
|
|
|
%name Vect xs, ys, zs
|
|
|
|
comp : (a -> b) -> (b -> c) -> a -> c
|
|
comp = ?baz
|
|
|
|
zipWith : (a -> b -> c) -> (1 xs : Vect n a) -> (1 ys : Vect n b) -> Vect n c
|
|
zipWith f [] [] = []
|
|
zipWith f (x :: xs) (y :: ys) = f x y :: zipWith f xs ys
|
|
|
|
transposeHelper : Vect m a -> (1 xs_trans : Vect m (Vect k a)) -> Vect m (Vect (S k) a)
|
|
transposeHelper xs ys = zipWith ?foo xs ys
|