ModopsSourceFunctors
val destr_functor :
('ty, 'a) Declarations.functorize ->
Names.MBId.t * 'ty * ('ty, 'a) Declarations.functorizeConversions between module_body and module_type_body
val module_body_of_type :
Names.ModPath.t ->
Declarations.module_type_body ->
Declarations.module_bodyval implem_smart_map :
(Declarations.structure_body -> Declarations.structure_body) ->
(Declarations.module_expression -> Declarations.module_expression) ->
Declarations.module_implementation ->
Declarations.module_implementationval annotate_module_expression :
Declarations.module_expression ->
Declarations.module_signature ->
(Declarations.module_type_body,
(Constr.constr * UVars.AbstractContext.t option)
Declarations.module_alg_expr)
Declarations.functorizeval annotate_struct_body :
Declarations.structure_body ->
Declarations.module_signature ->
Declarations.module_signatureval subst_signature :
Mod_subst.substitution ->
Declarations.module_signature ->
Declarations.module_signatureval subst_structure :
Mod_subst.substitution ->
Declarations.structure_body ->
Declarations.structure_bodyval add_structure :
Names.ModPath.t ->
Declarations.structure_body ->
Mod_subst.delta_resolver ->
Environ.env ->
Environ.envadds a module and its components, but not the constraints
val add_linked_module :
Declarations.module_body ->
Environ.link_info ->
Environ.env ->
Environ.envsame as add_module, but for a module whose native code has been linked by the native compiler. The linking information is updated.
val add_module_type :
Names.ModPath.t ->
Declarations.module_type_body ->
Environ.env ->
Environ.envsame, for a module type
val add_retroknowledge :
Declarations.module_implementation Declarations.module_retroknowledge ->
Environ.env ->
Environ.envval strengthen :
Declarations.module_type_body ->
Names.ModPath.t ->
Declarations.module_type_bodyval strengthen_and_subst_module_body :
Declarations.module_body ->
Names.ModPath.t ->
bool ->
Declarations.module_bodyval subst_modtype_signature_and_resolver :
Names.ModPath.t ->
Names.ModPath.t ->
Declarations.module_signature ->
Mod_subst.delta_resolver ->
Declarations.module_signature * Mod_subst.delta_resolverval inline_delta_resolver :
Environ.env ->
Entries.inline ->
Names.ModPath.t ->
Names.MBId.t ->
Declarations.module_type_body ->
Mod_subst.delta_resolver ->
Mod_subst.delta_resolverFor instance: functor(X:T)->struct module M:=X end) becomes: functor(X:T)->struct module M:=<content of T> end)
type signature_mismatch_error = | InductiveFieldExpected of Declarations.mutual_inductive_body| DefinitionFieldExpected| ModuleFieldExpected| ModuleTypeFieldExpected| NotConvertibleInductiveField of Names.Id.t| NotConvertibleConstructorField of Names.Id.t| NotConvertibleBodyField| NotConvertibleTypeField of Environ.env * Constr.types * Constr.types| CumulativeStatusExpected of bool| PolymorphicStatusExpected of bool| NotSameConstructorNamesField| NotSameInductiveNameInBlockField| FiniteInductiveFieldExpected of bool| InductiveNumbersFieldExpected of int| InductiveParamsNumberField of int| RecordFieldExpected of bool| RecordProjectionsExpected of Names.Name.t list| NotEqualInductiveAliases| IncompatibleUniverses of UGraph.univ_inconsistency| IncompatiblePolymorphism of Environ.env * Constr.types * Constr.types| IncompatibleConstraints of {got : UVars.AbstractContext.t;expect : UVars.AbstractContext.t;}| IncompatibleVariance| NoRewriteRulesSubtypingtype module_typing_error = | SignatureMismatch of subtyping_trace_elt list
* Names.Label.t
* signature_mismatch_error| LabelAlreadyDeclared of Names.Label.t| NotAFunctor| IsAFunctor of Names.ModPath.t| IncompatibleModuleTypes of Declarations.module_type_body
* Declarations.module_type_body| NotEqualModulePaths of Names.ModPath.t * Names.ModPath.t| NoSuchLabel of Names.Label.t * Names.ModPath.t| NotAModuleLabel of Names.Label.t| NotAConstant of Names.Label.t| IncorrectWithConstraint of Names.Label.t| GenerativeModuleExpected of Names.Label.t| LabelMissing of Names.Label.t * string| IncludeRestrictedFunctor of Names.ModPath.tval error_incompatible_modtypes :
Declarations.module_type_body ->
Declarations.module_type_body ->
'aval error_signature_mismatch :
subtyping_trace_elt list ->
Names.Label.t ->
signature_mismatch_error ->
'a