]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/components/ng_cic_content/interpretations.mli
Use of standard OCaml syntax
[helm.git] / matita / components / ng_cic_content / interpretations.mli
index a4a3fb9c09af03ae8cdfbaeb2f4be865aa52fabd..b7114903976f38a117eec635a174e45f30b8a034 100644 (file)
@@ -26,8 +26,6 @@
 
   (** {2 State handling} *)
 
-type id = string
-
 val hide_coercions: bool ref
 
 type db
@@ -38,18 +36,16 @@ class type g_status =
     method interp_db: db
   end
 
-class status :
+class virtual status :
   object ('self)
+    inherit g_status
     inherit NCicCoercion.status
-    method interp_db: db
     method set_interp_db: db -> 'self
     method set_interp_status: #g_status -> 'self
   end
 
-type cic_id = string
-
 val add_interpretation:
-  #status as 'status ->
+  (#status as 'status) ->
   string ->                                       (* id / description *)
   string * NotationPt.argument_pattern list -> (* symbol, level 2 pattern *)
   NotationPt.cic_appl_pattern ->               (* level 3 pattern *)
@@ -66,7 +62,7 @@ val lookup_interpretations:
 
   (** {3 Interpretations toggling} *)
 
-val toggle_active_interpretations: #status as 'status -> bool -> 'status
+val toggle_active_interpretations: (#status as 'status) -> bool -> 'status
 
   (** {2 content -> cic} *)
 
@@ -79,13 +75,32 @@ val instantiate_appl_pattern:
   (string * 'term) list -> NotationPt.cic_appl_pattern ->
     'term
 
+val nmap_term:
+ #status ->
+  metasenv:NCic.metasenv -> subst:NCic.substitution -> context:NCic.context ->
+  NCic.term ->
+   NotationPt.term *
+   (Content.id, NReference.reference) Hashtbl.t    (* id -> reference *)
+
+val nmap_context:
+ #status ->
+  metasenv:NCic.metasenv -> subst:NCic.substitution ->
+  NCic.context ->
+   NotationPt.term Content.context *
+   (Content.id, NReference.reference) Hashtbl.t    (* id -> reference *)
+
 val nmap_sequent:
  #status -> metasenv:NCic.metasenv -> subst:NCic.substitution ->
   int * NCic.conjecture ->
    NotationPt.term Content.conjecture *
-    (id, NReference.reference) Hashtbl.t    (* id -> reference *)
+    (Content.id, NReference.reference) Hashtbl.t    (* id -> reference *)
 
-val nmap_obj:
+val nmap_cobj:
  #status -> NCic.obj ->
   NotationPt.term Content.cobj *
-   (id, NReference.reference) Hashtbl.t    (* id -> reference *)
+   (Content.id, NReference.reference) Hashtbl.t    (* id -> reference *)
+
+val nmap_obj:
+ #status -> NCic.obj ->
+  NotationPt.term NotationPt.obj *
+   (Content.id, NReference.reference) Hashtbl.t    (* id -> reference *)