]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/tactics/proofEngineTypes.ml
abstracted pretty printers over inner pretty printing units (terms, lazy terms, and...
[helm.git] / helm / ocaml / tactics / proofEngineTypes.ml
index ed4a491e1d98d2ed14c55e1a585365e56c0d2f18..6e532a807478f3f28f4c11898e4ed1afb6ea7c48 100644 (file)
@@ -72,7 +72,10 @@ type lazy_reduction =
 let const_lazy_reduction red =
   (fun _ metasenv ugraph -> red, metasenv, ugraph)
 
-type pattern = lazy_term option * (string * Cic.term) list * Cic.term
+type ('term, 'lazy_term) pattern =
+  'lazy_term option * (string * 'term) list * 'term option
+
+type lazy_pattern = (Cic.term, lazy_term) pattern
 
 let conclusion_pattern t =
   let t' = 
@@ -80,10 +83,10 @@ let conclusion_pattern t =
     | None -> None
     | Some t -> Some (fun _ m u -> t, m, u)
   in
-  t',[],Cic.Implicit (Some `Hole)
+  t',[],Some (Cic.Implicit (Some `Hole))
 
   (** tactic failure *)
-exception Fail of string
+exception Fail of string Lazy.t
 
   (** 
     calls the opaque tactic on the status, restoring the original