aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/elaborate.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2012-01-06 09:40:20 -0500
committerGravatar Adam Chlipala <adam@chlipala.net>2012-01-06 09:40:20 -0500
commit955059f978b308bc06844ce1f1fd1cc2a5ea5ffb (patch)
tree214a4823227e3e21a426b14a1884f6b1a5206040 /src/elaborate.sml
parent6fc9942712fcdd6cdd5b138e619191c8c3972bee (diff)
Revert last unification tweak
Diffstat (limited to 'src/elaborate.sml')
-rw-r--r--src/elaborate.sml11
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})]*)