changeset 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 fec7beec96c7
children 126d24ef6678 0ff4f64b4309
files src/elaborate.sml
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
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})]*)