ClassesInstance declaration
val declare_instance : ?warn:bool -> Environ.env -> Evd.evar_map -> Typeclasses.hint_info option -> Hints.hint_locality -> Names.GlobRef.t -> unitDeclares the given global reference as an instance of its type. Does nothing — or emit a “not-a-class” warning if the warn argument is set — when said type is not a registered type class.
val existing_instance : ?loc:Loc.t -> Hints.hint_locality -> Names.GlobRef.t -> Vernacexpr.hint_info_expr option -> unitglobality, reference, optional priority and pattern information
val new_instance_interactive : locality:Hints.hint_locality -> poly:bool -> Constrexpr.name_decl -> Constrexpr.local_binder_expr list -> Constrexpr.constr_expr -> ?tac:unit Proofview.tactic ->
?hook:(Names.GlobRef.t -> unit) -> Vernacexpr.hint_info_expr -> (bool * Constrexpr.constr_expr) option -> Names.Id.t * Declare.Proof.tval new_instance : locality:Hints.hint_locality -> poly:bool -> Constrexpr.name_decl -> Constrexpr.local_binder_expr list -> Constrexpr.constr_expr -> (bool * Constrexpr.constr_expr) -> ?hook:(Names.GlobRef.t -> unit)
-> Vernacexpr.hint_info_expr -> Names.Id.tval new_instance_program : locality:Hints.hint_locality -> pm:Declare.OblState.t -> poly:bool ->
Constrexpr.name_decl -> Constrexpr.local_binder_expr list -> Constrexpr.constr_expr -> (bool * Constrexpr.constr_expr) option -> ?hook:(Names.GlobRef.t -> unit) -> Vernacexpr.hint_info_expr -> Declare.OblState.t * Names.Id.tval declare_new_instance : locality:Hints.hint_locality -> program_mode:bool -> poly:bool ->
Constrexpr.ident_decl -> Constrexpr.local_binder_expr list -> Constrexpr.constr_expr -> Vernacexpr.hint_info_expr -> unitval add_class : Typeclasses.typeclass -> unittype instance = {class_name : Names.GlobRef.t; |
instance : Names.GlobRef.t; |
info : Typeclasses.hint_info; |
locality : Hints.hint_locality; |
}module Event : sig ... endActivated observers are called whenever a class or an instance are declared.
register_observer is to be called once per process for a given string, unless override is true. The registered observer is not activated.
Activation state is part of the summary. It is up to the caller to use libobject for persistence if desired.
val activate_observer : observer -> unitval deactivate_observer : observer -> unitSetting opacity
val set_typeclass_transparency : locality:Hints.hint_locality -> Evaluable.t list -> bool -> unitval set_typeclass_transparency_com : locality:Hints.hint_locality -> Libnames.qualid list -> bool -> unitval set_typeclass_mode : locality:Hints.hint_locality -> Names.GlobRef.t -> Hints.hint_mode list -> unitFor generation on names based on classes only
val id_of_class : Typeclasses.typeclass -> Names.Id.tval refine_att : bool Attributes.attributemodule Internal : sig ... endval warn_default_mode : ?loc:Loc.t -> (Names.GlobRef.t * Hints.hint_mode list) -> unitA configurable warning to output if a default mode is used for a class declaration.