Idris2-boot/tests/idris2/interactive005/IEdit.idr
Edwin Brady e6292acdf0 Finish adding interactive tests from Blodwen
This involved implementing the 'TryWithImplicits' hack for allowing
unbound implicits in types with case blocks
2019-06-24 16:23:32 +01:00

28 lines
643 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
my_cong : forall f . (x : a) -> (y : a) -> x = y -> f x = f y
curry : ((a, b) -> c) -> a -> b -> c
uncurry : (a -> b -> c) -> (a, b) -> c
append : Vect n a -> Vect m a -> Vect (n + m) a
zipWith : (a -> b -> c) -> Vect n a -> Vect n b -> Vect n c
data Env : Vect n Type -> Type where
ENil : Env []
ECons : a -> Env xs -> Env (a :: xs)
%name Env es
data Elem : a -> Vect n a -> Type where
Here : Elem x (x :: xs)
There : (p : Elem x xs) -> Elem x (y :: xs)
lookup : Elem ty vs -> Env vs -> ty