DeclaremodsRigid / flexible module signature
Which module inline annotations should we honor, either None or the ones whose level is less or equal to the given integer
Kinds of modules
type module_params = (Names.lident list * (Constrexpr.module_ast * inline)) listtype module_expr = Modintern.module_struct_expr * Names.ModPath.t * Modintern.module_kind * Entries.inlinetype module_params_expr = (Names.MBId.t list * module_expr) listtype library_name = Names.DirPath.tmodule Synterp : sig ... endmodule Interp : sig ... enddeclare_module id fargs typ exprs declares module id, from functor arguments fargs, with final type typ. exprs is usually of length 1 (Module definition with a concrete body), but it could also be empty ("Declare Module", with non-empty typ), or multiple (body of the shape M <+ N <+ ...).
val start_library : library_name -> unitval end_library : output_native_objects:bool -> library_name -> Safe_typing.compiled_library * library_objects * library_objects * Vmlibrary.compiled_library * Nativelib.native_library * Library_info.titer_all_interp_segments iterate over all segments, the modules' segments first and then the current segment. Modules are presented in an arbitrary order. The given function is applied to all leaves (together with their section path). Ignores synterp objects.
val iter_all_interp_segments : (Libobject.object_prefix -> Libobject.t -> unit) -> unitval debug_print_modtab : unit -> Pp.tFor printing modules, process_module_binding adds names of bound module (and its components) to Nametab. It also loads objects associated to it. It may raise a Failure when the bound module hasn't an atomic type.
val process_module_binding : Names.MBId.t -> (Constr.t * UVars.AbstractContext.t option) Declarations.module_alg_expr -> unitCompatibility layer
val import_module : Libobject.open_filter -> export:Lib.export_flag -> Names.ModPath.t -> unitval declare_module : Names.Id.t -> module_params -> (Constrexpr.module_ast * inline) module_signature -> (Constrexpr.module_ast * inline) list -> Names.ModPath.tval start_module : Lib.export -> Names.Id.t -> module_params -> (Constrexpr.module_ast * inline) module_signature -> Names.ModPath.tval end_module : unit -> Names.ModPath.tval declare_modtype : Names.Id.t -> module_params -> (Constrexpr.module_ast * inline) list -> (Constrexpr.module_ast * inline) list -> Names.ModPath.tval start_modtype : Names.Id.t -> module_params -> (Constrexpr.module_ast * inline) list -> Names.ModPath.tval end_modtype : unit -> Names.ModPath.tval declare_include : (Constrexpr.module_ast * inline) list -> unit