diff options
author | 2008-07-10 11:13:49 -0400 | |
---|---|---|
committer | 2008-07-10 11:13:49 -0400 | |
commit | 5f2f492e122a26017496ed57d76ae39c6b1b254a (patch) | |
tree | cd664060237ca5cd0fe162aa9d62c841e7c71328 /src/flat_util.sml | |
parent | 768dfadfe4717b0c3f7b207a4980c78288b44a93 (diff) |
First executable generated
Diffstat (limited to 'src/flat_util.sml')
-rw-r--r-- | src/flat_util.sml | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/flat_util.sml b/src/flat_util.sml index c503cf18..f0a1e2e3 100644 --- a/src/flat_util.sml +++ b/src/flat_util.sml @@ -270,6 +270,15 @@ fun mapfoldB {typ = fc, exp = fe, decl = fd, bind} = S.map2 (mfe ctx e, fn e' => (DFun (n, x, dom', ran', e'), loc)))) + | DPage (xts, e) => + S.bind2 (ListUtil.mapfold (fn (x, t) => + S.map2 (mft t, + fn t' => + (x, t'))) xts, + fn xts' => + S.map2 (mfe ctx e, + fn e' => + (DPage (xts', e'), loc))) in mfd end @@ -308,11 +317,11 @@ fun mapfoldB (all as {bind, ...}) = S.bind2 (mfd ctx d, fn d' => let - val b = + val ctx' = case #1 d' of - DVal (x, n, t, e) => NamedE (x, n, t, SOME e) - | DFun v => F v - val ctx' = bind (ctx, b) + DVal (x, n, t, e) => bind (ctx, NamedE (x, n, t, SOME e)) + | DFun v => bind (ctx, F v) + | DPage _ => ctx in S.map2 (mff ctx' ds', fn ds' => |