diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-11-08 16:02:59 -0500 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-11-08 16:02:59 -0500 |
commit | 994846a1d8ee827702a18fe5379184cc387e9983 (patch) | |
tree | 6078fbad4c3562d8fd6401001a5c02628fd06ba4 /src/elaborate.sml | |
parent | b4fbebde89c6ed5eeae8653004417ac6000cdf07 (diff) |
Especialize handles records better
Diffstat (limited to 'src/elaborate.sml')
-rw-r--r-- | src/elaborate.sml | 8 |
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))) |