diff options
author | 2012-01-06 09:40:20 -0500 | |
---|---|---|
committer | 2012-01-06 09:40:20 -0500 | |
commit | 5fc7c4af78aaf549394e9438998b00be1c679cea (patch) | |
tree | 214a4823227e3e21a426b14a1884f6b1a5206040 | |
parent | caf4866385c67ac32b65daf48c8a8f7e2c859046 (diff) |
Revert last unification tweak
-rw-r--r-- | src/elaborate.sml | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/elaborate.sml b/src/elaborate.sml index 6556a8d6..89c077e5 100644 --- a/src/elaborate.sml +++ b/src/elaborate.sml @@ -865,15 +865,12 @@ val (unifs1, unifs2) = eatMatching (fn ((_, r1), (_, r2)) => r1 = r2) (#unifs s1, #unifs s2) - fun isMappy (c, _) = - case c of - L'.CApp ((L'.CMap _, _), c) => isMappy c - | L'.CUnif _ => true - | _ => false + val hasUnifs = U.Con.exists {kind = fn _ => false, + con = fn L'.CUnif _ => true + | _ => false} val (others1, others2) = eatMatching (fn (c1, c2) => - not (isMappy c1 andalso isMappy c2) - (* I guess this is a pretty bad hack, based on one pattern of bad unification I've seen! *) + 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})]*) |