Declare.Hook
Declaration hooks, to be run when a constant is saved. Use with care, as imperative effects may become not supported in the future.
type 'a g
type t = unit g
module S : sig ... end
Hooks 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...
val make_g : ( S.t -> 'a -> 'a ) -> 'a g
val make : ( S.t -> unit ) -> t
val call : ?hook:t -> S.t -> unit