LibLib: record of operations, backtrack, low-level sections
This module provides a general mechanism to keep a trace of all operations and to backtrack (undo) those operations. It provides also the section mechanism (at a low level; discharge is not known at this step).
type export = (export_flag * Libobject.open_filter) optionval 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_prefixtype node = | | CompilingLibrary of Nametab.object_prefix | 
| | OpenedModule of is_type * export * Nametab.object_prefix * Summary.frozen | 
| | OpenedSection of Nametab.object_prefix * Summary.frozen | 
val node_prefix : node -> Nametab.object_prefixExtract the object_prefix component. Note that it is the prefix of the objects *inside* this node, eg in Module M. we have OpenedModule with prefix containing M.
type library_segment = (node * Libobject.t list) listtype classified_objects = {| substobjs : Libobject.t list; | 
| keepobjs : Libobject.t list; | 
| anticipateobjs : Libobject.t list; | 
}Low-level adding operations (does not cache)
val add_entry : node -> unitval add_leaf_entry : Libobject.t -> unitAdding operations (which call the cache method, and getting the current list of operations (most recent ones coming first).
val add_leaf : Libobject.obj -> unitThe function contents gives access to the current entire segment
val contents : unit -> library_segmentval prefix : unit -> Nametab.object_prefixUser-side names
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 find_opening_node : Names.Id.t -> nodeReturns the opening node of a given name
val start_module : export -> Names.module_ident -> Names.ModPath.t -> Summary.frozen -> Nametab.object_prefixval start_modtype : Names.module_ident -> Names.ModPath.t -> Summary.frozen -> Nametab.object_prefixval end_module : unit -> Nametab.object_prefix * Summary.frozen * classified_objectsval end_modtype : unit -> Nametab.object_prefix * Summary.frozen * classified_objectsval start_compilation : Names.DirPath.t -> Names.ModPath.t -> unitval end_compilation : Names.DirPath.t -> Nametab.object_prefix * classified_objectsval library_dp : unit -> Names.DirPath.tThe function library_dp returns the DirPath.t of the current compiling library (or default_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 open_section : Names.Id.t -> unitStates).val freeze : unit -> frozenval unfreeze : frozen -> unitval 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 -> boolval discharge_proj_repr : Names.Projection.Repr.t -> Names.Projection.Repr.t