diff options
Diffstat (limited to 'src/mono_util.sml')
-rw-r--r-- | src/mono_util.sml | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mono_util.sml b/src/mono_util.sml index a56e5287..080c3dc9 100644 --- a/src/mono_util.sml +++ b/src/mono_util.sml @@ -175,6 +175,17 @@ fun mapfoldB {typ = fc, exp = fe, bind} = fn e' => (EAbs (x, dom', ran', e'), loc)))) + | EUnop (s, e) => + S.map2 (mfe ctx e, + fn e' => + (EUnop (s, e'), loc)) + | EBinop (s, e1, e2) => + S.bind2 (mfe ctx e1, + fn e1' => + S.map2 (mfe ctx e2, + fn e2' => + (EBinop (s, e1', e2'), loc))) + | ERecord xes => S.map2 (ListUtil.mapfold (fn (x, e, t) => S.bind2 (mfe ctx e, |