Mercurial > urweb
comparison src/fuse.sml @ 814:3f3b211f9bca
Fix argument ordering bug in fuse; fix case subsitution bug in MonoReduce
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 17 May 2009 14:36:55 -0400 |
parents | 65d8541c130b |
children | 9304474170ed |
comparison
equal
deleted
inserted
replaced
813:7b380e2b9e68 | 814:3f3b211f9bca |
---|---|
76 end | 76 end |
77 | _ => raise Fail "Fuse: getBody" | 77 | _ => raise Fail "Fuse: getBody" |
78 | 78 |
79 val (body, args) = getBody (e, args) | 79 val (body, args) = getBody (e, args) |
80 val body = MonoOpt.optExp (EWrite body, loc) | 80 val body = MonoOpt.optExp (EWrite body, loc) |
81 val (body, _) = foldl (fn ((x, dom), (body, ran)) => | 81 val (body, _) = foldr (fn ((x, dom), (body, ran)) => |
82 ((EAbs (x, dom, ran, body), loc), | 82 ((EAbs (x, dom, ran, body), loc), |
83 (TFun (dom, ran), loc))) | 83 (TFun (dom, ran), loc))) |
84 (body, (TRecord [], loc)) args | 84 (body, (TRecord [], loc)) args |
85 in | 85 in |
86 ((x, maxName, t', body, s) :: vis', | 86 ((x, maxName, t', body, s) :: vis', |