summaryrefslogtreecommitdiff
path: root/src/elaborate.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-11-08 16:02:59 -0500
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-11-08 16:02:59 -0500
commit994846a1d8ee827702a18fe5379184cc387e9983 (patch)
tree6078fbad4c3562d8fd6401001a5c02628fd06ba4 /src/elaborate.sml
parentb4fbebde89c6ed5eeae8653004417ac6000cdf07 (diff)
Especialize handles records better
Diffstat (limited to 'src/elaborate.sml')
-rw-r--r--src/elaborate.sml8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/elaborate.sml b/src/elaborate.sml
index 17133d93..70429c1b 100644
--- a/src/elaborate.sml
+++ b/src/elaborate.sml
@@ -2615,14 +2615,14 @@ fun subSgn (env, denv) sgn1 (sgn2 as (_, loc2)) =
| (L'.SgnFun (m1, n1, dom1, ran1), L'.SgnFun (m2, n2, dom2, ran2)) =>
let
- val ran1 =
+ val ran2 =
if n1 = n2 then
- ran1
+ ran2
else
- subStrInSgn (n1, n2) ran1
+ subStrInSgn (n2, n1) ran2
in
subSgn (env, denv) dom2 dom1;
- subSgn (E.pushStrNamedAs env m2 n2 dom2, denv) ran1 ran2
+ subSgn (E.pushStrNamedAs env m1 n1 dom2, denv) ran1 ran2
end
| _ => sgnError env (SgnWrongForm (sgn1, sgn2)))