aboutsummaryrefslogtreecommitdiff
path: root/src/ast
diff options
context:
space:
mode:
authorMalte Voos <git@mal.tc>2024-06-30 15:07:02 +0200
committerMalte Voos <git@mal.tc>2024-06-30 15:07:02 +0200
commitfab70aaf2947ff1369757355fbf11437c6db35ff (patch)
treedb4a00cb43cb4c3833091d5a7cd0423a99fb7f82 /src/ast
parentb34ebf3fe3ecaf292be873d231dd54c80f16ad07 (diff)
downloadtoytt-fab70aaf2947ff1369757355fbf11437c6db35ff.tar.gz
toytt-fab70aaf2947ff1369757355fbf11437c6db35ff.zip
implement syntax for non-dependent function and pair types
Diffstat (limited to 'src/ast')
-rw-r--r--src/ast/Ast.ml6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/ast/Ast.ml b/src/ast/Ast.ml
index 1a1d4c5..3a6fac6 100644
--- a/src/ast/Ast.ml
+++ b/src/ast/Ast.ml
@@ -7,9 +7,11 @@ and raw_expr =
| Var of Ident.t
| Check of expr * expr
| Pi of arg * expr
+ | Fun of expr * expr
| Lam of local_name * expr
| App of expr * expr
| Sg of arg * expr
+ | Prod of expr * expr
| Pair of expr * expr
| Fst of expr
| Snd of expr
@@ -52,12 +54,16 @@ and dump_raw_expr fmt = function
dump_expr scrut
| Pi (dom, cod) ->
Format.fprintf fmt "@[<4>Pi (@[%a@],@ @[%a@])@]" dump_arg dom dump_expr cod
+ | Fun (dom, cod) ->
+ Format.fprintf fmt "@[<5>Fun (@[%a@],@ @[%a@])@]" dump_expr dom dump_expr cod
| Lam (var, body) ->
Format.fprintf fmt "@[<5>Lam (@[%a@].@ @[%a@])@]" dump_local_name var dump_expr body
| App (fn, arg) ->
Format.fprintf fmt "@[<5>App (@[%a@],@ @[%a@])@]" dump_expr fn dump_expr arg
| Sg (fst, snd) ->
Format.fprintf fmt "@[<4>Sg (@[%a@],@ @[%a@])@]" dump_arg fst dump_expr snd
+ | Prod (fst, snd) ->
+ Format.fprintf fmt "@[<6>Prod (@[%a@],@ @[%a@])@]" dump_expr fst dump_expr snd
| Pair (fst, snd) ->
Format.fprintf fmt "@[<6>Pair (@[%a@],@ @[%a@])@]" dump_expr fst dump_expr snd
| Fst p -> Format.fprintf fmt "@[<5>Fst (@[%a@])@]" dump_expr p