Mercurial > urweb
diff src/reduce.sml @ 445:dfc8c991abd0
Replace 'with' with '++'
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Fri, 31 Oct 2008 09:30:22 -0400 |
parents | bd9ee9aeca2f |
children | ae03d09043c1 |
line wrap: on
line diff
--- a/src/reduce.sml Thu Oct 30 17:07:34 2008 -0400 +++ b/src/reduce.sml Fri Oct 31 09:30:22 2008 -0400 @@ -107,18 +107,18 @@ | _ => false) xes of SOME (_, e, _) => #1 e | NONE => e) - | EWith (r as (_, loc), x, e, {rest = (CRecord (k, xts), _), field}) => + | EConcat (r1 as (_, loc), (CRecord (k, xts1), _), r2, (CRecord (_, xts2), _)) => let - fun fields (remaining, passed) = + fun fields (r, remaining, passed) = case remaining of [] => [] | (x, t) :: rest => (x, (EField (r, x, {field = t, rest = (CRecord (k, List.revAppend (passed, rest)), loc)}), loc), - t) :: fields (rest, (x, t) :: passed) + t) :: fields (r, rest, (x, t) :: passed) in - #1 (reduceExp env (ERecord ((x, e, field) :: fields (xts, [])), loc)) + #1 (reduceExp env (ERecord (fields (r1, xts1, []) @ fields (r2, xts2, [])), loc)) end | ECut (r as (_, loc), _, {rest = (CRecord (k, xts), _), ...}) => let