--- a/src/Tools/subtyping.ML Thu Feb 21 18:27:28 2013 +0100
+++ b/src/Tools/subtyping.ML Fri Feb 22 13:36:31 2013 +0100
@@ -360,8 +360,9 @@
(fold new_constraints (arg_var ~~ (Ts ~~ Us)) ([], (tye, idx)));
val test_update = is_typeT orf is_freeT orf is_fixedvarT;
val (ch, done') =
- if not (null new) then ([], done)
- else split_cs (test_update o Type_Infer.deref tye') done;
+ done
+ |> map (apfst (pairself (Type_Infer.deref tye')))
+ |> (if not (null new) then rpair [] else split_cs test_update);
val todo' = ch @ todo;
in
simplify done' (new @ todo') (tye', idx')