aboutsummaryrefslogtreecommitdiff
path: root/interp/genarg.ml
diff options
context:
space:
mode:
Diffstat (limited to 'interp/genarg.ml')
-rw-r--r--interp/genarg.ml55
1 files changed, 10 insertions, 45 deletions
diff --git a/interp/genarg.ml b/interp/genarg.ml
index a029a3b31e..5d61de508e 100644
--- a/interp/genarg.ml
+++ b/interp/genarg.ml
@@ -74,6 +74,11 @@ type open_glob_constr = unit * glob_constr_and_expr
type glob_constr_pattern_and_expr = glob_constr_and_expr * Pattern.constr_pattern
+type ('raw, 'glob, 'top) genarg_type = argument_type
+
+type 'a uniform_genarg_type = ('a, 'a, 'a) genarg_type
+(** Alias for concision *)
+
(* Dynamics but tagged by a type expression *)
type 'a generic_argument = argument_type * Obj.t
@@ -82,88 +87,50 @@ type rlevel
type glevel
type tlevel
-let rawwit_bool = BoolArgType
-let globwit_bool = BoolArgType
+let rawwit t = t
+let glbwit t = t
+let topwit t = t
+
let wit_bool = BoolArgType
-let rawwit_int = IntArgType
-let globwit_int = IntArgType
let wit_int = IntArgType
-let rawwit_int_or_var = IntOrVarArgType
-let globwit_int_or_var = IntOrVarArgType
let wit_int_or_var = IntOrVarArgType
-let rawwit_string = StringArgType
-let globwit_string = StringArgType
let wit_string = StringArgType
-let rawwit_pre_ident = PreIdentArgType
-let globwit_pre_ident = PreIdentArgType
let wit_pre_ident = PreIdentArgType
-let rawwit_intro_pattern = IntroPatternArgType
-let globwit_intro_pattern = IntroPatternArgType
let wit_intro_pattern = IntroPatternArgType
-let rawwit_ident_gen b = IdentArgType b
-let globwit_ident_gen b = IdentArgType b
let wit_ident_gen b = IdentArgType b
-let rawwit_ident = rawwit_ident_gen true
-let globwit_ident = globwit_ident_gen true
let wit_ident = wit_ident_gen true
-let rawwit_pattern_ident = rawwit_ident_gen false
-let globwit_pattern_ident = globwit_ident_gen false
let wit_pattern_ident = wit_ident_gen false
-let rawwit_var = VarArgType
-let globwit_var = VarArgType
let wit_var = VarArgType
-let rawwit_ref = RefArgType
-let globwit_ref = RefArgType
let wit_ref = RefArgType
-let rawwit_quant_hyp = QuantHypArgType
-let globwit_quant_hyp = QuantHypArgType
let wit_quant_hyp = QuantHypArgType
-let rawwit_sort = SortArgType
-let globwit_sort = SortArgType
let wit_sort = SortArgType
-let rawwit_constr = ConstrArgType
-let globwit_constr = ConstrArgType
let wit_constr = ConstrArgType
-let rawwit_constr_may_eval = ConstrMayEvalArgType
-let globwit_constr_may_eval = ConstrMayEvalArgType
let wit_constr_may_eval = ConstrMayEvalArgType
-let rawwit_open_constr_gen b = OpenConstrArgType b
-let globwit_open_constr_gen b = OpenConstrArgType b
let wit_open_constr_gen b = OpenConstrArgType b
-let rawwit_open_constr = rawwit_open_constr_gen false
-let globwit_open_constr = globwit_open_constr_gen false
let wit_open_constr = wit_open_constr_gen false
-let rawwit_casted_open_constr = rawwit_open_constr_gen true
-let globwit_casted_open_constr = globwit_open_constr_gen true
let wit_casted_open_constr = wit_open_constr_gen true
-let rawwit_constr_with_bindings = ConstrWithBindingsArgType
-let globwit_constr_with_bindings = ConstrWithBindingsArgType
let wit_constr_with_bindings = ConstrWithBindingsArgType
-let rawwit_bindings = BindingsArgType
-let globwit_bindings = BindingsArgType
let wit_bindings = BindingsArgType
-let rawwit_red_expr = RedExprArgType
-let globwit_red_expr = RedExprArgType
let wit_red_expr = RedExprArgType
let wit_list0 t = List0ArgType t
@@ -242,9 +209,7 @@ let create_arg v s =
Errors.anomaly ~label:"Genarg.create" (str ("already declared generic argument " ^ s));
let t = ExtraArgType s in
dyntab := (s,Option.map (in_gen t) v) :: !dyntab;
- (t,t,t)
-
-let exists_argtype s = List.mem_assoc s !dyntab
+ t
let default_empty_argtype_value s = List.assoc s !dyntab