aboutsummaryrefslogtreecommitdiff
path: root/interp
diff options
context:
space:
mode:
Diffstat (limited to 'interp')
-rw-r--r--interp/constrextern.ml3
-rw-r--r--interp/topconstr.ml5
-rw-r--r--interp/topconstr.mli2
3 files changed, 10 insertions, 0 deletions
diff --git a/interp/constrextern.ml b/interp/constrextern.ml
index 58869667b8..566752fda0 100644
--- a/interp/constrextern.ml
+++ b/interp/constrextern.ml
@@ -103,9 +103,12 @@ let idopt_of_name = function
| Anonymous -> None
let extern_evar loc n =
+(*
msgerrnl (str
"Warning: existential variable turned into meta-variable during externalization");
CPatVar (loc,(false,make_ident "META" (Some n)))
+*)
+ CEvar (loc,n)
let raw_string_of_ref = function
| ConstRef kn ->
diff --git a/interp/topconstr.ml b/interp/topconstr.ml
index d2ef146bf2..17a4410200 100644
--- a/interp/topconstr.ml
+++ b/interp/topconstr.ml
@@ -437,6 +437,11 @@ type local_binder =
| LocalRawDef of name located * constr_expr
| LocalRawAssum of name located list * constr_expr
+let rec local_binders_length = function
+ | [] -> 0
+ | LocalRawDef _::bl -> 1 + local_binders_length bl
+ | LocalRawAssum (idl,_)::bl -> List.length idl + local_binders_length bl
+
(**********************************************************************)
(* Functions on constr_expr *)
diff --git a/interp/topconstr.mli b/interp/topconstr.mli
index 55cd20290f..071af9d374 100644
--- a/interp/topconstr.mli
+++ b/interp/topconstr.mli
@@ -135,6 +135,8 @@ type local_binder =
| LocalRawDef of name located * constr_expr
| LocalRawAssum of name located list * constr_expr
+val local_binders_length : local_binder list -> int
+
(* Concrete syntax for modules and modules types *)
type with_declaration_ast =