about summary refs log tree commit diff
path: root/lib/Data.ml
diff options
context:
space:
mode:
authorMalte Voos <git@mal.tc>2024-06-23 01:36:48 +0200
committerMalte Voos <git@mal.tc>2024-06-23 01:36:48 +0200
commit8d40541003736d5319ec981278338e8c8c66daf6 (patch)
treee595d0055af42b6a9d84e504befbe114a8cef5e2 /lib/Data.ml
parent36762e83887b6f917df46c5e40a11d53b697209d (diff)
downloadtoytt-8d40541003736d5319ec981278338e8c8c66daf6.tar.gz
toytt-8d40541003736d5319ec981278338e8c8c66daf6.zip
keep track of bound names everywhere to be able to output names instead of de bruijn indices
Diffstat (limited to 'lib/Data.ml')
-rw-r--r--lib/Data.ml20
1 files changed, 11 insertions, 9 deletions
diff --git a/lib/Data.ml b/lib/Data.ml
index 19ca67d..d2f94d3 100644
--- a/lib/Data.ml
+++ b/lib/Data.ml
@@ -4,10 +4,10 @@ open Bwd
 
 type syn =
   | Var of int
-  | Pi of syn * (* BINDS *) syn
-  | Lam of (* BINDS *) syn
+  | Pi of Ident.local * syn * (* BINDS *) syn
+  | Lam of Ident.local * (* BINDS *) syn
   | App of syn * syn
-  | Sg of syn * (* BINDS *) syn
+  | Sg of Ident.local * syn * (* BINDS *) syn
   | Pair of syn * syn
   | Fst of syn
   | Snd of syn
@@ -16,6 +16,7 @@ type syn =
   | True
   | False
   | BoolElim of {
+      motive_var : Ident.local;
       motive : (* BINDS *) syn;
       true_case : syn;
       false_case : syn;
@@ -26,9 +27,9 @@ type syn =
 
 type value =
   | Neutral of ne
-  | Pi of value * clo
-  | Lam of clo
-  | Sg of value * clo
+  | Pi of Ident.local * value * clo
+  | Lam of Ident.local * clo
+  | Sg of Ident.local * value * clo
   | Pair of value * value
   | Type
   | Bool
@@ -42,9 +43,10 @@ and frm =
   | Fst
   | Snd
   | BoolElim of {
-      cmot: clo;
-      vtrue: value;
-      vfalse: value;
+      motive_var : Ident.local;
+      motive: clo;
+      true_case: value;
+      false_case: value;
     }
 
 and env = value bwd