export raw_matches;
authorwenzelm
Sat, 20 May 2006 23:37:04 +0200
changeset 19694 08894a78400b
parent 19693 ab816ca8df06
child 19695 7706aeac6cf1
export raw_matches;
src/Pure/type.ML
--- a/src/Pure/type.ML	Sat May 20 23:37:03 2006 +0200
+++ b/src/Pure/type.ML	Sat May 20 23:37:04 2006 +0200
@@ -55,6 +55,7 @@
   val typ_match: tsig -> typ * typ -> tyenv -> tyenv
   val typ_instance: tsig -> typ * typ -> bool
   val raw_match: typ * typ -> tyenv -> tyenv
+  val raw_matches: typ list * typ list -> tyenv -> tyenv
   val raw_instance: typ * typ -> bool
   exception TUNIFY
   val unify: tsig -> typ * typ -> tyenv * int -> tyenv * int
@@ -340,7 +341,8 @@
       if x = y then subs else raise TYPE_MATCH
   | raw_match _ _ = raise TYPE_MATCH
 and raw_matches (T :: Ts, U :: Us) subs = raw_matches (Ts, Us) (raw_match (T, U) subs)
-  | raw_matches _ subs = subs;
+  | raw_matches ([], []) subs = subs
+  | raw_matches _ _ = raise TYPE_MATCH;
 
 fun raw_instance (T, U) =
   (raw_match (U, T) Vartab.empty; true) handle TYPE_MATCH => false;