Module Lib
type is_type= booltype export_flag=|Export|Importtype export= (export_flag * Libobject.open_filter) option
val make_oname : Nametab.object_prefix -> Names.Id.t -> Libobject.object_nameval make_foname : Names.Id.t -> Libobject.object_nameval oname_prefix : Libobject.object_name -> Nametab.object_prefix
type 'summary node=|CompilingLibrary of Nametab.object_prefix|OpenedModule of is_type * export * Nametab.object_prefix * 'summary|OpenedSection of Nametab.object_prefix * 'summary
val node_prefix : 'summary node -> Nametab.object_prefixExtract the
object_prefixcomponent. Note that it is the prefix of the objects *inside* this node, eg inModule M.we haveOpenedModulewith prefix containingM.
type 'summary library_segment= ('summary node * Libobject.t list) list
...
val add_leaf : Libobject.obj -> unit
...
val contents : unit -> Summary.Interp.frozen library_segment
Functions relative to current path
val prefix : unit -> Nametab.object_prefixUser-side names
cwd()is(prefix()).obj_dircurrent_mp()is(prefix()).obj_mpInside a library A.B module M section S, we have
- library_dp = A.B
- cwd = A.B.M.S
- cwd_except_section = A.B.M
- current_dirpath true = M.S
- current_dirpath false = S
- current_mp = MPdot(MPfile A.B, M)
make_path (resp make_path_except_section) uses cwd (resp cwd_except_section) make_kn uses current_mp
val cwd : unit -> Names.DirPath.tval cwd_except_section : unit -> Names.DirPath.tval current_dirpath : bool -> Names.DirPath.tval make_path : Names.Id.t -> Libnames.full_pathval make_path_except_section : Names.Id.t -> Libnames.full_pathval current_mp : unit -> Names.ModPath.tKernel-side names
val make_kn : Names.Id.t -> Names.KerName.tval sections_are_opened : unit -> boolAre we inside an opened section
val sections_depth : unit -> intval is_module_or_modtype : unit -> boolAre we inside an opened module type
module type StagedLibS = sig ... endThe
StagedLibSabstraction describes operations and traversal for Lib at a given stage.
module Synterp : StagedLibS with type summary = Summary.Synterp.frozenmodule Interp : StagedLibS with type summary = Summary.Interp.frozenCompilation units
val start_compilation : Names.DirPath.t -> Names.ModPath.t -> unitval end_compilation : Names.DirPath.t -> Nametab.object_prefix * Library_info.t list * Interp.classified_objects * Synterp.classified_objectsFinalize the compilation of a library and return respectively the library prefix, the regular objects, and the syntax-related objects.
val library_dp : unit -> Names.DirPath.tThe function
library_dpreturns theDirPath.tof the current compiling library (ordefault_library)
val split_modpath : Names.ModPath.t -> Names.DirPath.t * Names.Id.t listExtract the library part of a name even if in a section
val library_part : Names.GlobRef.t -> Names.DirPath.tval section_segment_of_constant : Names.Constant.t -> Cooking.cooking_infoSection management for discharge
val section_segment_of_inductive : Names.MutInd.t -> Cooking.cooking_infoval section_segment_of_reference : Names.GlobRef.t -> Cooking.cooking_infoval section_instance : Names.GlobRef.t -> Constr.t arrayval is_in_section : Names.GlobRef.t -> bool
Discharge: decrease the section level if in the current section
val discharge_proj_repr : Names.Projection.Repr.t -> Names.Projection.Repr.t
val init : unit -> unitval open_section : Names.Id.t -> unitval close_section : unit -> unit