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',