diff options
author | Maxime Dénès <mail@maximedenes.fr> | 2015-01-16 22:17:03 +0100 |
---|---|---|
committer | Maxime Dénès <mail@maximedenes.fr> | 2015-01-17 08:02:45 +0100 |
commit | 9f5586d88880cbb98c92edfe9c33c76564f1a19c (patch) | |
tree | 6de2a171eff5706b0e4ce9268554b84a922f12b3 /kernel/univ.ml | |
parent | 4985f0ff99278beb3b934f86edf1398659c611a8 (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.ml | 4 |
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 |