summaryrefslogtreecommitdiff
path: root/src/monoize.sml
diff options
context:
space:
mode:
Diffstat (limited to 'src/monoize.sml')
-rw-r--r--src/monoize.sml15
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