Module Libobject
type object_name= Libnames.full_path * Names.KerName.ttype open_filtertype ('a, 'b) object_declaration={object_name : string;cache_function : 'b -> unit;load_function : int -> 'b -> unit;open_function : open_filter -> int -> 'b -> unit;classify_function : 'a -> substitutivity;subst_function : (Mod_subst.substitution * 'a) -> 'a;discharge_function : 'a -> 'a option;rebuild_function : 'a -> 'a;}
val unfiltered : open_filterval make_filter : finite:bool -> string CAst.t list -> open_filterAnomaly when the list is empty.
val create_category : string -> categoryAnomaly if called more than once for a given string.
val in_filter : cat:category option -> open_filter -> boolOn
cat:None, returns whether the filter allows opening uncategorized objects.On
cat:(Some category), returns whether the filter allows opening objects in the givencategory.
val simple_open : ?cat:category -> ('i -> 'a -> unit) -> open_filter -> 'i -> 'a -> unitCombinator for making objects with simple category-based open behaviour. When
cat:None, can be opened by Unfiltered, but also by Filtered with a negative set.
val filter_and : open_filter -> open_filter -> open_filter optionReturns
Nonewhen the intersection is empty.
val filter_or : open_filter -> open_filter -> open_filter
val default_object : string -> ('a, 'b) object_declarationval ident_subst_function : (Mod_subst.substitution * 'a) -> 'athe identity substitution function
...
type obj= Dyn.ttype algebraic_objects=|Objs of t list|Ref of Names.ModPath.t * Mod_subst.substitutionand t=|ModuleObject of Names.Id.t * substitutive_objects|ModuleTypeObject of Names.Id.t * substitutive_objects|IncludeObject of algebraic_objects|KeepObject of Names.Id.t * t list|ExportObject of{mpl : (open_filter * Names.ModPath.t) list;}|AtomicObject of objand substitutive_objects= Names.MBId.t list * algebraic_objects
val declare_object : ('a, 'a) object_declaration -> 'a -> objval declare_object_full : ('a, Nametab.object_prefix * 'a) object_declaration -> 'a Dyn.tagval declare_named_object_full : ('a, object_name * 'a) object_declaration -> (Names.Id.t * 'a) Dyn.tagval declare_named_object : ('a, object_name * 'a) object_declaration -> Names.Id.t -> 'a -> objval declare_named_object_gen : ('a, Nametab.object_prefix * 'a) object_declaration -> 'a -> objval cache_object : (Nametab.object_prefix * obj) -> unitval load_object : int -> (Nametab.object_prefix * obj) -> unitval open_object : open_filter -> int -> (Nametab.object_prefix * obj) -> unitval subst_object : (Mod_subst.substitution * obj) -> objval classify_object : obj -> substitutivityval discharge_object : obj -> obj optionval rebuild_object : obj -> obj
val local_object : string -> cache:('a -> unit) -> discharge:('a -> 'a option) -> ('a, 'a) object_declarationval local_object_nodischarge : string -> cache:('a -> unit) -> ('a, 'a) object_declarationval global_object : ?cat:category -> string -> cache:('a -> unit) -> subst:((Mod_subst.substitution * 'a) -> 'a) option -> discharge:('a -> 'a option) -> ('a, 'a) object_declarationval global_object_nodischarge : ?cat:category -> string -> cache:('a -> unit) -> subst:((Mod_subst.substitution * 'a) -> 'a) option -> ('a, 'a) object_declarationval superglobal_object : string -> cache:('a -> unit) -> subst:((Mod_subst.substitution * 'a) -> 'a) option -> discharge:('a -> 'a option) -> ('a, 'a) object_declarationval superglobal_object_nodischarge : string -> cache:('a -> unit) -> subst:((Mod_subst.substitution * 'a) -> 'a) option -> ('a, 'a) object_declaration