package coq-core
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=13d2793fc6413aac5168822313e4864e
sha512=ec8379df34ba6e72bcf0218c66fef248b0e4c5c436fb3f2d7dd83a2c5f349dd0874a67484fcf9c0df3e5d5937d7ae2b2a79274725595b4b0065a381f70769b42
doc/coq-core.vernac/Declaremods/index.html
Module DeclaremodsSource
Modules
Rigid / 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_expr =
Modintern.module_struct_expr
* Names.ModPath.t
* Modintern.module_kind
* Entries.inlineLibraries i.e. modules on disk
declare_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 end_library :
output_native_objects:bool ->
library_name ->
Safe_typing.compiled_library
* library_objects
* library_objects
* Nativelib.native_library
* Library_info.t listappend a function to be executed at end_library
...
iter_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.
For 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 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.t