diff options
author | msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2012-10-26 01:29:33 +0000 |
---|---|---|
committer | msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2012-10-26 01:29:33 +0000 |
commit | 0919391f43729bf172ab00c8dec9438a0a9f59ab (patch) | |
tree | 8afd08a9df68b58711da31a14bd2e8ec23b359ba /pretyping/typeclasses.mli | |
parent | 42bb029c878666a7a897ff615acdc60e7f67dd06 (diff) |
Change Hint Resolve, Immediate to take a global reference as argument
instead of a general constr: this is the most common case and does
not loose generality (one can simply define constrs before Hint Resolving
them). Benefits:
- Natural semantics for typeclasses, not class resolution needed at
Hint Resolve time, meaning less trouble for users as well.
- Ability to [Hint Remove] any hint so declared.
- Simplifies the implementation as well.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@15930 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping/typeclasses.mli')
-rw-r--r-- | pretyping/typeclasses.mli | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/pretyping/typeclasses.mli b/pretyping/typeclasses.mli index 039aeb1e6..729cbb2ad 100644 --- a/pretyping/typeclasses.mli +++ b/pretyping/typeclasses.mli @@ -103,9 +103,13 @@ val set_typeclass_transparency : evaluable_global_reference -> bool -> bool -> u val register_classes_transparent_state : (unit -> transparent_state) -> unit val classes_transparent_state : unit -> transparent_state -val register_add_instance_hint : (constr -> bool (* local? *) -> int option -> unit) -> unit +val register_declare_definition : (?internal:bool -> ?opaque:bool -> ?kind:definition_object_kind -> identifier -> ?types:constr -> constr -> constant) -> unit + + +val register_add_instance_hint : + (global_reference -> bool (* local? *) -> int option -> unit) -> unit val register_remove_instance_hint : (global_reference -> unit) -> unit -val add_instance_hint : constr -> bool -> int option -> unit +val add_instance_hint : global_reference -> bool -> int option -> unit val remove_instance_hint : global_reference -> unit val solve_instanciations_problem : (env -> evar_map -> evar_filter -> bool -> bool -> evar_map) ref @@ -119,4 +123,4 @@ val declare_instance : int option -> bool -> global_reference -> unit subinstances and add only the missing ones. *) val build_subclasses : check:bool -> env -> evar_map -> global_reference -> int option (* priority *) -> - (int option * constr) list + (int option * global_reference) list |