Hook.SHooks allow users of the API to perform arbitrary actions at proof/definition saving time. For example, to register a constant as a Coercion, perform some cleanup, update the search database, etc...
type t = {| uctx : UState.t; | (* 
 | 
| obls : (Names.Id.t * Constr.t) list; | (* 
 | 
| scope : Locality.definition_scope; | (* 
 | 
| dref : Names.GlobRef.t; | (* 
 | 
}