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