Module Cooking

Cooking the constants.
type recipe = {
from : Declarations.constant_body;
info : Declarations.cooking_info;
}
type inline = bool
type 'opaque result = {
cook_body : (Constr.constr'opaque) Declarations.constant_def;
cook_type : Constr.types;
cook_universes : Declarations.universes;
cook_relevance : Sorts.relevance;
cook_inline : inline;
cook_context : Names.Id.Set.t option;
cook_flags : Declarations.typing_flags;
}
val cook_constant : recipe -> Declarations.cooking_info Opaqueproof.opaque result
val cook_constr : Declarations.cooking_info list -> (Constr.constr * unit Opaqueproof.delayed_universes) -> Constr.constr * unit Opaqueproof.delayed_universes
val cook_inductive : Declarations.cooking_info -> Declarations.mutual_inductive_body -> Declarations.mutual_inductive_body
Utility functions used in module Discharge.
val expmod_constr : Declarations.work_list -> Constr.constr -> Constr.constr