diff options
Diffstat (limited to 'src/monoize.sml')
-rw-r--r-- | src/monoize.sml | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/monoize.sml b/src/monoize.sml index 8d7fabb8..fe360d75 100644 --- a/src/monoize.sml +++ b/src/monoize.sml @@ -216,7 +216,22 @@ fun fooifyExp fk env = | _ => case t of L'.TFfi (m, x) => ((L'.EFfiApp (m, fk2s fk ^ "ify" ^ capitalize x, [e]), loc), fm) + | L'.TRecord [] => ((L'.EPrim (Prim.String ""), loc), fm) + | L'.TRecord ((x, t) :: xts) => + let + val (se, fm) = fooify fm ((L'.EField (e, x), loc), t) + in + foldl (fn ((x, t), (se, fm)) => + let + val (se', fm) = fooify fm ((L'.EField (e, x), loc), t) + in + ((L'.EStrcat (se, + (L'.EStrcat ((L'.EPrim (Prim.String "/"), loc), + se'), loc)), loc), + fm) + end) (se, fm) xts + end | L'.TDatatype (i, ref (dk, _)) => let |