comparison src/elaborate.sml @ 1305:a6fc03d28170

Fix infinite looping bug in Great Unification Fix
author Adam Chlipala <adam@chlipala.net>
date Sun, 10 Oct 2010 15:54:51 -0400
parents f0afe61a6f8b
children 3a845f2ce9e9
comparison
equal deleted inserted replaced
1304:f0afe61a6f8b 1305:a6fc03d28170
1057 else if nl1 = 0 then 1057 else if nl1 = 0 then
1058 (unifyKinds env k1 k2; 1058 (unifyKinds env k1 k2;
1059 r1 := SOME c2All) 1059 r1 := SOME c2All)
1060 else if nl2 = 0 then 1060 else if nl2 = 0 then
1061 (unifyKinds env k1 k2; 1061 (unifyKinds env k1 k2;
1062 r2 := SOME c2All) 1062 r2 := SOME c1All)
1063 else 1063 else
1064 err (fn _ => TooLifty (loc1, loc2)) 1064 err (fn _ => TooLifty (loc1, loc2))
1065 1065
1066 | (L'.CUnif (0, _, _, _, r), _) => 1066 | (L'.CUnif (0, _, _, _, r), _) =>
1067 if occursCon r c2All then 1067 if occursCon r c2All then