]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_disambiguation/disambiguateChoices.ml
ocaml 3.09 transition
[helm.git] / helm / ocaml / cic_disambiguation / disambiguateChoices.ml
index 9f3c554c6ec626ae5f4c2a7d3ea28c43940a6540..b7f2410366dbf783059c0449ba2b068087d58862 100644 (file)
@@ -27,8 +27,7 @@ open Printf
 
 open DisambiguateTypes
 
-exception Invalid_choice
-exception Choice_not_found of string
+exception Choice_not_found of string Lazy.t
 
 let num_choices = ref []
 
@@ -41,7 +40,7 @@ let lookup_num_choices () = !num_choices
 let lookup_num_by_dsc dsc =
   try
     List.find (has_description dsc) !num_choices
-  with Not_found -> raise (Choice_not_found ("Num with dsc " ^  dsc))
+  with Not_found -> raise (Choice_not_found (lazy ("Num with dsc " ^  dsc)))
 
 let mk_choice (dsc, args, appl_pattern) =
   dsc,
@@ -52,7 +51,8 @@ let mk_choice (dsc, args, appl_pattern) =
       in
       try
         List.combine names cic_args
-      with Invalid_argument _ -> raise Invalid_choice
+      with Invalid_argument _ ->
+       raise (Invalid_choice (lazy "The notation expects a different number of arguments"))
     in
     CicNotationFwd.instantiate_appl_pattern env' appl_pattern)
 
@@ -63,5 +63,5 @@ let lookup_symbol_by_dsc symbol dsc =
         (fun (dsc', _, _) -> dsc = dsc')
         (CicNotationRew.lookup_interpretations symbol))
   with CicNotationRew.Interpretation_not_found | Not_found ->
-    raise (Choice_not_found (sprintf "Symbol %s, dsc %s" symbol dsc))
+    raise (Choice_not_found (lazy (sprintf "Symbol %s, dsc %s" symbol dsc)))