allow multiple names in a binder

e.g. "(x y : ℕ) × plus x y ≡ 10 : ℕ"

fixes #2
This commit is contained in:
rhiannon morris 2023-04-19 21:36:57 +02:00
parent b4a8438434
commit 3f06e8d68b
8 changed files with 49 additions and 50 deletions

View file

@ -148,6 +148,8 @@ tests = "parser" :- [
Pi Any (Just "x") (V "A") (V "B" :@ V "x"),
parsesAs term "#.(x : A) -> B x" $
Pi Any (Just "x") (V "A") (V "B" :@ V "x"),
parsesAs term "1.(x y : A) -> B x" $
Pi One (Just "x") (V "A") $ Pi One (Just "y") (V "A") (V "B" :@ V "x"),
parseFails term "(x : A) → B x",
parsesAs term "1.A → B"
(Pi One Nothing (V "A") (V "B")),
@ -158,6 +160,8 @@ tests = "parser" :- [
Sig (Just "x") (V "A") (V "B" :@ V "x"),
parsesAs term "(x : A) ** B x" $
Sig (Just "x") (V "A") (V "B" :@ V "x"),
parsesAs term "(x y : A) × B x" $
Sig (Just "x") (V "A") $ Sig (Just "y") (V "A") (V "B" :@ V "x"),
parseFails term "1.(x : A) × B x",
parsesAs term "A × B" $
Sig Nothing (V "A") (V "B"),