]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/ng_refiner/nRstatus.ml
snapshot for CSC
[helm.git] / helm / software / components / ng_refiner / nRstatus.ml
index 26ef2684c11a0a5ebb1f3815e5e0abf5e2c2187f..26482e61b4138deec35cae8c12a0bb5774f24f16 100644 (file)
 
 (* $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;
-}
+class status =
+ object (self)
+  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_coercion_status o)#set_library_status o
+ end
+
+type sstatus = status
 
 module Serializer =
- NCicLibrary.Serializer(struct type status = refiner_status end)
+ 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_coerc_db (rstatus#coerc_db) in
+   let status = status#set_uhint_db (rstatus#uhint_db) in
+   let status = status#set_timestamp (rstatus#timestamp) in
+    status 
+ end
 
-type dumpable_refiner_status = {
-        refiner_status : refiner_status;
-        dump: Serializer.obj list
-}
+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