aboutsummaryrefslogtreecommitdiff
path: root/library/impargs.mli
diff options
context:
space:
mode:
Diffstat (limited to 'library/impargs.mli')
-rw-r--r--library/impargs.mli43
1 files changed, 21 insertions, 22 deletions
diff --git a/library/impargs.mli b/library/impargs.mli
index bc52caea05..bd5f6024a7 100644
--- a/library/impargs.mli
+++ b/library/impargs.mli
@@ -4,50 +4,49 @@
(*i*)
open Names
open Term
+open Environ
open Inductive
(*i*)
(*s Implicit arguments. Here we store the implicit arguments. Notice that we
are outside the kernel, which knows nothing about implicit arguments. *)
-type implicits =
- | Impl_auto of int list
- | Impl_manual of int list
- | No_impl
-
val make_implicit_args : bool -> unit
val is_implicit_args : unit -> bool
val implicitely : ('a -> 'b) -> 'a -> 'b
val with_implicits : bool -> ('a -> 'b) -> 'a -> 'b
-val list_of_implicits : implicits -> int list
+(*s An [implicits_list] is a list of positions telling which arguments
+ of a reference can be automatically infered *)
+type implicits_list = int list
-(*s Computation of implicits (done using the global environment). *)
+(* Computation of the positions of arguments automatically inferable
+ for an object of the given type in the given env *)
+val compute_implicits : env -> 'a Evd.evar_map -> types -> implicits_list
-val declare_var_implicits : section_path -> unit
-val declare_constant_implicits : section_path -> unit
-val declare_mib_implicits : section_path -> unit
+(*s Computation of implicits (done using the global environment). *)
+val declare_var_implicits : variable_path -> unit
+val declare_constant_implicits : constant_path -> unit
+val declare_mib_implicits : mutual_inductive_path -> unit
val declare_implicits : global_reference -> unit
-val declare_manual_implicits : global_reference -> int list -> unit
-(*s Access to already computed implicits. *)
+(* Manual declaration of which arguments are expected implicit *)
+val declare_manual_implicits : global_reference -> implicits_list -> unit
-val constant_implicits : section_path -> implicits
-val inductive_implicits : inductive_path -> implicits
-val constructor_implicits : constructor_path -> implicits
+(*s Access to already computed implicits. *)
-val constructor_implicits_list : constructor_path -> int list
-val inductive_implicits_list : inductive_path -> int list
-val constant_implicits_list : section_path -> int list
+val constructor_implicits_list : constructor_path -> implicits_list
+val inductive_implicits_list : inductive_path -> implicits_list
+val constant_implicits_list : constant_path -> implicits_list
-val implicits_of_var : section_path -> int list
+val implicits_of_var : variable_path -> implicits_list
-val is_implicit_constant : section_path -> bool
+val is_implicit_constant : constant_path -> bool
val is_implicit_inductive_definition : inductive_path -> bool
-val is_implicit_var : section_path -> bool
+val is_implicit_var : variable_path -> bool
-val implicits_of_global : global_reference -> int list
+val implicits_of_global : global_reference -> implicits_list
(*s Rollback. *)