(************************************************************************) (* * The Rocq Prover / The Rocq Development Team *) (* v * Copyright INRIA, CNRS and contributors *) (* <O___,, * (see version control and CREDITS file for authors & dates) *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) (* * (see LICENSE file for the text of the license) *) (************************************************************************)
(** Which module inline annotations should we honor, eitherNoneortheoneswhoselevelislessorequal
to the given integer *)
type inline =
| NoInline
| DefaultInline
| InlineAt of int
(** Kinds of modules *)
type module_params = (lident list * (Constrexpr.module_ast * inline)) list type module_expr = (module_struct_expr * ModPath.t * module_kind * Entries.inline) type module_params_expr = (MBId.t list * module_expr) list
(** {6 Libraries i.e. modules on disk } *)
type library_name = DirPath.t
type library_objects
module Synterp : sig
val declare_module :
Id.t ->
module_params ->
(Constrexpr.module_ast * inline) module_signature ->
(Constrexpr.module_ast * inline) list ->
ModPath.t * module_params_expr * module_expr list * module_expr module_signature
val declare_include :
(Constrexpr.module_ast * inline) list ->
module_expr list
val declare_modtype :
Id.t ->
module_params ->
(Constrexpr.module_ast * inline) list ->
(Constrexpr.module_ast * inline) list ->
ModPath.t * module_params_expr * module_expr list * module_expr list
val start_modtype :
Id.t ->
module_params ->
(Constrexpr.module_ast * inline) list ->
ModPath.t * module_params_expr * module_expr list
val end_modtype : unit -> ModPath.t
val import_module : Libobject.open_filter -> export:Lib.export_flag -> ModPath.t -> unit
val import_modules : export:Lib.export_flag -> (Libobject.open_filter * ModPath.t) list -> unit
val register_library : library_name -> library_objects -> unit
val close_section : unit -> unit
end
module Interp : sig
(** [declare_module id fargs typ exprs] declares module [id], from functorarguments[fargs],withfinaltype[typ].[exprs]is usuallyoflength1(Moduledefinitionwithaconcretebody),but itcouldalsobeempty("DeclareModule",withnon-empty[typ]),or
multiple (body of the shape M <+ N <+ ...). *)
val declare_module :
Id.t ->
module_params_expr ->
module_expr module_signature ->
module_expr list ->
ModPath.t
(** [declare_modtype interp_modast id fargs typs exprs]
Similar to [declare_module], except that the types could be multiple *)
val declare_modtype :
Id.t ->
module_params_expr ->
module_expr list ->
module_expr list ->
ModPath.t
val start_modtype :
Id.t ->
module_params_expr ->
module_expr list ->
ModPath.t
val end_modtype : unit -> ModPath.t
val register_library :
library_name ->
Safe_typing.compiled_library -> library_objects -> Safe_typing.vodigest ->
Vmlibrary.on_disk ->
unit
(** [import_module export mp] imports the module [mp]. ItmodifiesNametabandperformsthe[open_object]functionfor everyobjectofthemodule.Raises[Not_found]when[mp]isunknown orwhen[mp]correspondstoafunctor.If[export]is[true],themoduleisalso
opened every time the module containing it is. *)
val import_module : Libobject.open_filter -> export:Lib.export_flag -> ModPath.t -> unit
(** Same as [import_module] but for multiple modules, and more optimized than
iterating [import_module]. *) val import_modules : export:Lib.export_flag -> (Libobject.open_filter * ModPath.t) list -> unit
(** append a function to be executed at end_library *) val append_end_library_hook : (unit -> unit) -> unit
(** {6 ... } *) (** [iter_all_interp_segments] iterate over all segments, the modules' segmentsfirstandthenthecurrentsegment.Modulesarepresented inanarbitraryorder.Thegivenfunctionisappliedtoallleaves
(together with their section path). Ignores synterp objects. *)
val iter_all_interp_segments :
(Libobject.object_prefix -> Libobject.t -> unit) -> unit
val debug_print_modtab : unit -> Pp.t
(** For printing modules, [process_module_binding] adds names of boundmodule(anditscomponents)toNametab.Italsoloads objectsassociatedtoit.Itmayraisea[Failure]whenthe
bound module hasn't an atomic type. *)
val process_module_binding :
MBId.t -> (Constr.t * UVars.AbstractContext.t option) Declarations.module_alg_expr -> unit
(** Compatibility layer *)
val import_module : Libobject.open_filter -> export:Lib.export_flag -> ModPath.t -> unit
val declare_module :
Id.t ->
module_params ->
(Constrexpr.module_ast * inline) module_signature ->
(Constrexpr.module_ast * inline) list ->
ModPath.t
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.