Mercurial > urweb
comparison src/mono_util.sml @ 1800:38297294cf98
New NameJs phase, still needing some debugging
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Thu, 02 Aug 2012 18:12:37 -0400 |
parents | 0577be31a435 |
children | c1e3805e604e |
comparison
equal
deleted
inserted
replaced
1799:3d922a28370b | 1800:38297294cf98 |
---|---|
636 case mapfold {typ = fn c => fn () => S.Continue (typ c, ()), | 636 case mapfold {typ = fn c => fn () => S.Continue (typ c, ()), |
637 exp = fn e => fn () => S.Continue (exp e, ()), | 637 exp = fn e => fn () => S.Continue (exp e, ()), |
638 decl = fn d => fn () => S.Continue (decl d, ())} e () of | 638 decl = fn d => fn () => S.Continue (decl d, ())} e () of |
639 S.Return () => raise Fail "MonoUtil.Decl.map: Impossible" | 639 S.Return () => raise Fail "MonoUtil.Decl.map: Impossible" |
640 | S.Continue (e, ()) => e | 640 | S.Continue (e, ()) => e |
641 | |
642 fun foldMap {typ, exp, decl} s d = | |
643 case mapfold {typ = fn c => fn s => S.Continue (typ (c, s)), | |
644 exp = fn e => fn s => S.Continue (exp (e, s)), | |
645 decl = fn d => fn s => S.Continue (decl (d, s))} d s of | |
646 S.Continue v => v | |
647 | S.Return _ => raise Fail "MonoUtil.Decl.foldMap: Impossible" | |
641 | 648 |
642 fun foldMapB {typ, exp, decl, bind} ctx s d = | 649 fun foldMapB {typ, exp, decl, bind} ctx s d = |
643 case mapfoldB {typ = fn c => fn s => S.Continue (typ (c, s)), | 650 case mapfoldB {typ = fn c => fn s => S.Continue (typ (c, s)), |
644 exp = fn ctx => fn e => fn s => S.Continue (exp (ctx, e, s)), | 651 exp = fn ctx => fn e => fn s => S.Continue (exp (ctx, e, s)), |
645 decl = fn ctx => fn d => fn s => S.Continue (decl (ctx, d, s)), | 652 decl = fn ctx => fn d => fn s => S.Continue (decl (ctx, d, s)), |