Module Term_typing
type 'a effect_handler= Environ.env -> Constr.t -> 'a -> Constr.t * Univ.ContextSet.t * intHandlers are used to manage side-effects. The
'atype stands for the type of side-effects, and it is parametric because they are only defined later on. Handlers inline the provided side-effects into the term, and return the set of additional global constraints that need to be added for the term to be well typed.
val translate_local_def : Environ.env -> Names.Id.t -> Entries.section_def_entry -> Constr.constr * Sorts.relevance * Constr.typesval translate_local_assum : Environ.env -> Constr.types -> Constr.types * Sorts.relevanceval translate_constant : Environ.env -> Names.Constant.t -> Entries.constant_entry -> 'a Declarations.pconstant_bodyval translate_opaque : Environ.env -> Names.Constant.t -> 'a Entries.opaque_entry -> unit Declarations.pconstant_body * typing_contextval translate_recipe : Environ.env -> Names.Constant.t -> Cooking.recipe -> Declarations.constant_bodyval check_delayed : 'a effect_handler -> typing_context -> 'a Entries.proof_output -> Constr.t * Univ.ContextSet.t Opaqueproof.delayed_universes
val infer_declaration : Environ.env -> Entries.constant_entry -> typing_context Cooking.resultval build_constant_declaration : Environ.env -> 'a Cooking.result -> 'a Declarations.pconstant_body