Module ComCoercion
val try_add_new_coercion_with_target : Names.GlobRef.t -> local:bool -> poly:bool -> source:Coercionops.cl_typ -> target:Coercionops.cl_typ -> unittry_add_new_coercion_with_target ref s src tgdeclaresrefas a coercion fromsrctotg
val try_add_new_coercion : Names.GlobRef.t -> local:bool -> poly:bool -> unittry_add_new_coercion ref sdeclaresref, assumed to be of type(x1:T1)...(xn:Tn)src->tg, as a coercion fromsrctotg
val try_add_new_coercion_subclass : Coercionops.cl_typ -> local:bool -> poly:bool -> unittry_add_new_coercion_subclass cst sexpects thatcstdenotes a transparent constant which unfolds to some classtg; it declares an identity coercion fromcsttotg, named something like"Id_cst_tg"
val try_add_new_coercion_with_source : Names.GlobRef.t -> local:bool -> poly:bool -> source:Coercionops.cl_typ -> unittry_add_new_coercion_with_source ref s srcdeclaresrefas a coercion fromsrctotgwhere the target is inferred from the type ofref
val try_add_new_identity_coercion : Names.Id.t -> local:bool -> poly:bool -> source:Coercionops.cl_typ -> target:Coercionops.cl_typ -> unittry_add_new_identity_coercion id s src tgenriches the environment with a new definition of nameiddeclared as an identity coercion fromsrctotg
val add_coercion_hook : poly:bool -> Declare.Hook.tval add_subclass_hook : poly:bool -> Declare.Hook.tval class_of_global : Names.GlobRef.t -> Coercionops.cl_typ