From a8ae5c1814db75525bf0ab199b0e5bd08c2c558a Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Thu, 2 Aug 2012 18:12:37 -0400 Subject: New NameJs phase, still needing some debugging --- src/mono_util.sml | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/mono_util.sml') diff --git a/src/mono_util.sml b/src/mono_util.sml index 38016f85..58498996 100644 --- a/src/mono_util.sml +++ b/src/mono_util.sml @@ -639,6 +639,13 @@ fun map {typ, exp, decl} e = S.Return () => raise Fail "MonoUtil.Decl.map: Impossible" | S.Continue (e, ()) => e +fun foldMap {typ, exp, decl} s d = + case mapfold {typ = fn c => fn s => S.Continue (typ (c, s)), + exp = fn e => fn s => S.Continue (exp (e, s)), + decl = fn d => fn s => S.Continue (decl (d, s))} d s of + S.Continue v => v + | S.Return _ => raise Fail "MonoUtil.Decl.foldMap: Impossible" + fun foldMapB {typ, exp, decl, bind} ctx s d = case mapfoldB {typ = fn c => fn s => S.Continue (typ (c, s)), exp = fn ctx => fn e => fn s => S.Continue (exp (ctx, e, s)), -- cgit v1.2.3