Add vscode extension, command line argument, and positioned error handling.

This commit is contained in:
2024-07-04 23:40:38 -04:00
parent 0cad438f4d
commit b9f921ab3b
24 changed files with 5701 additions and 98 deletions

15
eg/eq.newt Normal file
View File

@@ -0,0 +1,15 @@
module Equality
-- we don't have implicits yet, so this won't typecheck
Eq : {A : U} -> A -> A -> U
Eq = \ {A} => \ x => \ y => (P : A -> U) -> P x -> P y
refl : {A : U} {x : A} -> Eq x x
refl = \ {A} => \ {x} => x
-- can I write J without pattern matching?
J : {A : U} {x y : A} (eq : Eq x y) ->
(mot : (x : A) (P : Eq x y) -> U)
(b : mot y refl) ->
mot x eq

View File

@@ -11,7 +11,7 @@ id = \ a => \ x => x
List : U -> U
List = \ A => (L : U) -> L -> (A -> L -> L) -> L
nil : (A L : U) -> L -> (A -> L -> L) -> L
nil : (A : U) -> List A
nil = \ A L n f => n
Bool : U

31
eg/zoo2.newt Normal file
View File

@@ -0,0 +1,31 @@
module Zoo2
id : (A : U) -> A -> A
id = \ A x => x
const : (A B : U) -> A -> B -> A
const = \A B x y => x
Nat : U
Nat = (N : U) -> (N -> N) -> N -> N
-- need Nat to reduce (and syntax highlighting)
five : Nat
five = \ N s z => s (s (s (s (s z))))
add : Nat -> Nat -> Nat
add = \a b N s z => a N s (b N s z)
mul : Nat -> Nat -> Nat
mul = \a b N s z => a N (b N s) z
ten : Nat
ten = add five five
hundred : Nat
hundred = mul ten ten
thousand : Nat
thousand = mul ten hundred
-- and then nf / eval of hundred