diff options
Diffstat (limited to 'library/impargs.mli')
| -rw-r--r-- | library/impargs.mli | 43 |
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. *) |
