Declaremods.Interpdeclare_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 declare_module :
Names.Id.t ->
module_params_expr ->
module_expr module_signature ->
module_expr list ->
Names.ModPath.tval start_module :
Lib.export ->
Names.Id.t ->
module_params_expr ->
module_expr module_signature ->
Names.ModPath.tval end_module : unit -> Names.ModPath.tdeclare_modtype interp_modast id fargs typs exprs Similar to declare_module, except that the types could be multiple
val declare_modtype :
Names.Id.t ->
module_params_expr ->
module_expr list ->
module_expr list ->
Names.ModPath.tval start_modtype :
Names.Id.t ->
module_params_expr ->
module_expr list ->
Names.ModPath.tval end_modtype : unit -> Names.ModPath.tval register_library :
library_name ->
Safe_typing.compiled_library ->
library_objects ->
Safe_typing.vodigest ->
Univ.ContextSet.t ->
unitimport_module export mp imports the module mp. It modifies Nametab and performs the open_object function for every object of the module. Raises Not_found when mp is unknown or when mp corresponds to a functor. If export is true, the module is also opened every time the module containing it is.
val import_module :
Libobject.open_filter ->
export:Lib.export_flag ->
Names.ModPath.t ->
unitval import_modules :
export:Lib.export_flag ->
(Libobject.open_filter * Names.ModPath.t) list ->
unitSame as import_module but for multiple modules, and more optimized than iterating import_module.
Include
val declare_include : module_expr list -> unit