Module Libobject
type object_name= Libnames.full_path * Names.KerName.ttype open_filter=|Unfiltered|Names of Globnames.ExtRefSet.ttype 'a object_declaration={object_name : string;cache_function : (object_name * 'a) -> unit;load_function : int -> (object_name * 'a) -> unit;open_function : open_filter -> int -> (object_name * 'a) -> unit;classify_function : 'a -> 'a substitutivity;subst_function : (Mod_subst.substitution * 'a) -> 'a;discharge_function : (object_name * 'a) -> 'a option;rebuild_function : 'a -> 'a;}
val simple_open : (int -> (object_name * 'a) -> unit) -> open_filter -> int -> (object_name * 'a) -> unitCombinator for making objects which are only opened by unfiltered Import
val filter_and : open_filter -> open_filter -> open_filter optionReturns
Nonewhen the intersection is empty.
val filter_or : open_filter -> open_filter -> open_filterval in_filter_ref : Names.GlobRef.t -> open_filter -> bool
val default_object : string -> 'a object_declarationval ident_subst_function : (Mod_subst.substitution * 'a) -> 'athe identity substitution function
...
type obj= Dyn.ttype algebraic_objects=|Objs of objects|Ref of Names.ModPath.t * Mod_subst.substitutionand t=|ModuleObject of substitutive_objects|ModuleTypeObject of substitutive_objects|IncludeObject of algebraic_objects|KeepObject of objects|ExportObject of{mpl : (open_filter * Names.ModPath.t) list;}|AtomicObject of objand objects= (Names.Id.t * t) listand substitutive_objects= Names.MBId.t list * algebraic_objects
val declare_object_full : 'a object_declaration -> 'a Dyn.tagval declare_object : 'a object_declaration -> 'a -> objval cache_object : (object_name * obj) -> unitval load_object : int -> (object_name * obj) -> unitval open_object : open_filter -> int -> (object_name * obj) -> unitval subst_object : (Mod_subst.substitution * obj) -> objval classify_object : obj -> obj substitutivityval discharge_object : (object_name * obj) -> obj optionval rebuild_object : obj -> obj
val local_object : string -> cache:((object_name * 'a) -> unit) -> discharge:((object_name * 'a) -> 'a option) -> 'a object_declarationval local_object_nodischarge : string -> cache:((object_name * 'a) -> unit) -> 'a object_declarationval global_object : string -> cache:((object_name * 'a) -> unit) -> subst:((Mod_subst.substitution * 'a) -> 'a) option -> discharge:((object_name * 'a) -> 'a option) -> 'a object_declarationval global_object_nodischarge : string -> cache:((object_name * 'a) -> unit) -> subst:((Mod_subst.substitution * 'a) -> 'a) option -> 'a object_declarationval superglobal_object : string -> cache:((object_name * 'a) -> unit) -> subst:((Mod_subst.substitution * 'a) -> 'a) option -> discharge:((object_name * 'a) -> 'a option) -> 'a object_declarationval superglobal_object_nodischarge : string -> cache:((object_name * 'a) -> unit) -> subst:((Mod_subst.substitution * 'a) -> 'a) option -> 'a object_declaration