(* $Id: nCicRefiner.ml 9802 2009-05-25 15:39:26Z tassi $ *)
-type refiner_status = {
- coerc_db : NCicCoercion.db;
- uhint_db : NCicUnifHint.db;
- library_db : NCicLibrary.timestamp;
- dump: refiner_status -> refiner_status
-}
+class status =
+ object (self)
+ inherit NCicUnifHint.status
+ inherit NCicCoercion.status
+ inherit NCicLibrary.status
+ method set_rstatus
+ : 'status.
+ < coerc_db : NCicCoercion.db;
+ uhint_db : NCicUnifHint.db;
+ timestamp: NCicLibrary.timestamp; .. > as 'status -> 'self
+ = fun o ->
+ ((self#set_unifhint_status o)#set_coercion_status o)#set_library_status o
+ end
+type sstatus = status
+
+module Serializer =
+ struct
+ include NCicLibrary.Serializer(struct type status = sstatus end)
+
+ let require ~baseuri status =
+ let rstatus = require ~baseuri (status : #status :> status) in
+ let status = status#set_uhint_db (rstatus#uhint_db) in
+ let status = status#set_coerc_db (rstatus#coerc_db) in
+ let status = status#set_timestamp (rstatus#timestamp) in
+ status
+ end
+
+class dumpable_status =
+ object
+ inherit status
+ val dump = ([] : Serializer.obj list)
+ method dump = dump
+ method set_dump v = {< dump = v >}
+ method set_dumpable_status
+ : 'status.
+ < coerc_db : NCicCoercion.db;
+ uhint_db : NCicUnifHint.db;
+ timestamp: NCicLibrary.timestamp;
+ dump: Serializer.obj list; .. > as 'status -> 'self
+ = fun o -> {< dump = o#dump >}#set_rstatus o
+ end