aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/univ.ml
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2015-01-16 22:17:03 +0100
committerGravatar Maxime Dénès <mail@maximedenes.fr>2015-01-17 08:02:45 +0100
commit9f5586d88880cbb98c92edfe9c33c76564f1a19c (patch)
tree6de2a171eff5706b0e4ce9268554b84a922f12b3 /kernel/univ.ml
parent4985f0ff99278beb3b934f86edf1398659c611a8 (diff)
Make native compiler handle universe polymorphic definitions.
One remaining issue: aliased constants raise an anomaly when some unsubstituted universe variables remain. VM may suffer from the same problem.
Diffstat (limited to 'kernel/univ.ml')
-rw-r--r--kernel/univ.ml4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/univ.ml b/kernel/univ.ml
index e2a19b0e8..7d64e894d 100644
--- a/kernel/univ.ml
+++ b/kernel/univ.ml
@@ -303,6 +303,10 @@ module Level = struct
let var n =
if n < 20 then vars.(n) else make (Var n)
+ let var_index u =
+ match data u with
+ | Var n -> Some n | _ -> None
+
let make m n = make (Level (n, Names.DirPath.hcons m))
end