+let dump_obj status obj =
+ status#set_dump {status#dump with objs = obj::status#dump.objs }
+;;
+
+let remove_objects ~baseuri =
+ let uri = NUri.string_of_uri baseuri in
+ let path = String.sub uri 4 (String.length uri - 4) in
+ let path = Helm_registry.get "matita.basedir" ^ path in
+ let map name = Sys.remove (Filename.concat path name) in
+ if HExtlib.is_dir path && HExtlib.is_regular (path ^ ".ng") then begin
+ HLog.warn ("removing contents of baseuri: " ^ uri);
+ Array.iter map (Sys.readdir path)
+ end
+
+module type SerializerType =
+ sig
+ type dumpable_status
+
+ type 'a register_type =
+ 'a ->
+ refresh_uri_in_universe:(NCic.universe -> NCic.universe) ->
+ refresh_uri_in_term:(NCic.status -> NCic.term -> NCic.term) ->
+ refresh_uri_in_reference:(NReference.reference -> NReference.reference) ->
+ alias_only:bool ->
+ dumpable_status -> dumpable_status
+
+ val register: < run: 'a. string -> 'a register_type -> ('a -> obj) >
+ val serialize: baseuri:NUri.uri -> dumpable_status -> unit
+ val require:
+ baseuri:NUri.uri -> fname:string -> alias_only:bool ->
+ dumpable_status -> dumpable_status
+ val dependencies_of: baseuri:NUri.uri -> string list
+ end
+
+module Serializer(D: sig type dumpable_s = private #dumpable_status end) =