ModopsFunctors
val is_functor : ( 'ty, 'a ) Declarations.functorize -> boolval destr_functor : 
  ( 'ty, 'a ) Declarations.functorize ->
  Names.MBId.t * 'ty * ( 'ty, 'a ) Declarations.functorizeval destr_nofunctor : 
  Names.ModPath.t ->
  ( 'ty, 'a ) Declarations.functorize ->
  'aConversions between module_body and module_type_body
val module_type_of_module : 
  Declarations.module_body ->
  Declarations.module_type_bodyval module_body_of_type : 
  Names.ModPath.t ->
  Declarations.module_type_body ->
  Declarations.module_bodyval check_modpath_equiv : 
  Environ.env ->
  Names.ModPath.t ->
  Names.ModPath.t ->
  unitval 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 * Univ.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.envval add_module : Declarations.module_body -> 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)
val clean_bounded_mod_expr : 
  Declarations.module_signature ->
  Declarations.module_signaturetype 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 {
 } | ||
| IncompatibleVariance | 
type 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.t | 
exception ModuleTypingError of module_typing_errorval error_existing_label : Names.Label.t -> 'aval 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 ->
  'aval error_no_such_label : Names.Label.t -> Names.ModPath.t -> 'aval error_not_a_module_label : Names.Label.t -> 'aval error_not_a_constant : Names.Label.t -> 'aval error_incorrect_with_constraint : Names.Label.t -> 'aval error_generative_module_expected : Names.Label.t -> 'aval error_no_such_label_sub : Names.Label.t -> string -> 'aval error_include_restricted_functor : Names.ModPath.t -> 'a