Nametab.ModTypesModule types, modules and open modules/modtypes/sections form three separate name spaces (maybe this will change someday)
Common APIs on name tables.
type elt = Names.ModPath.tThe type of the elements of the name table (eg ModPath.t)
val push : visibility -> Libnames.full_path -> elt -> unitAdd an element or modify its visibility. With visibility Until, assume the element is new. With visibility Exactly, assume the element is not new.
val remove : Libnames.full_path -> elt -> unitRemove an element.
val shortest_qualid_gen : ?loc:Loc.t -> (Names.Id.t -> bool) -> elt -> Libnames.qualidshortest_qualid_gen avoid v: given an object v with full name Mylib.A.B.x, try to find the shortest among x, B.x, A.B.x and Mylib.A.B.x that denotes the same object. If avoid is true on x it is assumed to denote something else (so B.x is the shortest qualid that could be returned).
val shortest_qualid : ?loc:Loc.t -> Names.Id.Set.t -> elt -> Libnames.qualidLike shortest_qualid_gen but using an id set instead of a closure.
val locate : Libnames.qualid -> eltGlobalize the given user-level reference. If any warnings are associated with the produced object, print them unless nowarn:true was given.
val locate_upto : limit:int -> Libnames.qualid -> (Libnames.qualid * elt) listFind elements which are limit different from the input (dots are treated rigidly).
val locate_all : Libnames.qualid -> elt listLocate all elements with a given suffix. If the qualid is a valid absolute name, that element is first in the list.
val completion_candidates : Libnames.qualid -> elt listReturn the elements that have the qualid as a prefix. UIs will usually compose with shortest_qualid. Experimental APIs, please tell us if you use it.
val to_path : elt -> Libnames.full_pathReturn the absolute name for the given element.
val of_path : Libnames.full_path -> eltReturn an element bound to an absolute path.
val exists : Libnames.full_path -> boolReturns whether this absolute path is taken.