Idris2/tests/ttimp/coverage001/Vect3.yaff
Edwin Brady a972778eab Add test script
They don't all pass yet, for minor reasons. Coming shortly...
Unfortunately the startup overhead for chez is really noticeable here!
2020-05-19 18:25:18 +01:00

29 lines
556 B
Plaintext

data Bool : Type where
False : Bool
True : Bool
not : Bool -> Bool
not False = True
not True = False
data Nat : Type where
Z : Nat
S : Nat -> Nat
plus : Nat -> Nat -> Nat
plus Z y = y
plus (S k) y = S (plus k y)
data Vect : ? -> Type -> Type where
Nil : Vect Z a
Cons : a -> Vect k a -> Vect (S k) a
data Pair : Type -> Type -> Type where
MkPair : a -> b -> Pair a b
zip : Vect n a -> Vect n b -> Vect n (Pair a b)
zip Nil Z impossible
zip Nil Nil = Nil
zip (Cons x xs) (Cons y ys) = Cons (MkPair x y) (zip xs ys)