src/Pure/thm.ML
changeset 2979 db6941221197
parent 2962 97ae96c72d8c
child 3012 0d683397b74b
--- a/src/Pure/thm.ML	Thu Apr 17 18:45:43 1997 +0200
+++ b/src/Pure/thm.ML	Thu Apr 17 18:46:58 1997 +0200
@@ -260,7 +260,7 @@
     val (_, t', tye) =
           Sign.infer_types sign types sorts used freeze (ts, T');
     val ct = cterm_of sign t'
-      handle TYPE arg => error (Sign.exn_type_msg sign arg)
+      handle TYPE (msg, _, _) => error msg
            | TERM (msg, _) => error msg;
   in (ct, tye) end;
 
@@ -271,18 +271,20 @@
   not practical.*)
 fun read_cterms sign (bs, Ts) =
   let
-    val {tsig, syn, ...} = Sign.rep_sg sign
-    fun read (b,T) =
-        case Syntax.read syn T b of
-            [t] => t
-          | _   => error("Error or ambiguity in parsing of " ^ b)
-    val (us,_) = Type.infer_types(tsig, Sign.const_type sign, 
-                                  K None, K None, 
-                                  [], true, 
-                                  map (Sign.certify_typ sign) Ts, 
-                                  ListPair.map read (bs,Ts))
-  in  map (cterm_of sign) us  end
-  handle TYPE arg => error (Sign.exn_type_msg sign arg)
+    val {tsig, syn, ...} = Sign.rep_sg sign;
+    fun read (b, T) =
+      (case Syntax.read syn T b of
+        [t] => t
+      | _  => error ("Error or ambiguity in parsing of " ^ b));
+
+    val prt = setmp Syntax.show_brackets true (Sign.pretty_term sign);
+    val prT = Sign.pretty_typ sign;
+    val (us, _) =
+      Type.infer_types prt prT tsig (Sign.const_type sign)
+        (K None) (K None) [] true (map (Sign.certify_typ sign) Ts)
+        (ListPair.map read (bs, Ts));
+  in map (cterm_of sign) us end
+  handle TYPE (msg, _, _) => error msg
        | TERM (msg, _) => error msg;