diff src/elaborate.sml @ 1964:072656016dfa

Add another simple case for record unification between alpha-equivalent constructors
author Adam Chlipala <adam@chlipala.net>
date Wed, 29 Jan 2014 18:19:25 -0500
parents 006633a0039a
children 2c075e875a47
line wrap: on
line diff
--- a/src/elaborate.sml	Sun Jan 19 14:31:55 2014 -0500
+++ b/src/elaborate.sml	Wed Jan 29 18:19:25 2014 -0500
@@ -873,8 +873,9 @@
                                              | _ => false}
 
          val (others1, others2) = eatMatching (fn (c1, c2) =>
-                                                  not (hasUnifs c1 andalso hasUnifs c2)
-                                                  andalso consEq env loc (c1, c2)) (#others s1, #others s2)
+                                                  c1 = c2
+                                                  orelse (not (hasUnifs c1 andalso hasUnifs c2)
+                                                          andalso consEq env loc (c1, c2))) (#others s1, #others s2)
          (*val () = eprefaces "Summaries3" [("#1", p_summary env {fields = fs1, unifs = unifs1, others = others1}),
                                           ("#2", p_summary env {fields = fs2, unifs = unifs2, others = others2})]*)