diff options
Diffstat (limited to 'src/corify.sml')
-rw-r--r-- | src/corify.sml | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/corify.sml b/src/corify.sml index 118255b7..43acedfc 100644 --- a/src/corify.sml +++ b/src/corify.sml @@ -427,7 +427,19 @@ fun corifyDecl ((d, loc : EM.span), st) = end | _ => raise Fail "Non-const signature for FFI structure") - | L.DPage (c, e) => ([(L'.DPage (corifyCon st c, corifyExp st e), loc)], st) + | L.DPage (c, e) => + let + val c = corifyCon st c + val e = corifyExp st e + + val dom = (L'.TRecord c, loc) + val ran = (L'.TRecord (L'.CRecord ((L'.KType, loc), []), loc), loc) + val e = (L'.EAbs ("vs", dom, ran, + (L'.EWrite (L'.EApp (e, (L'.ERel 0, loc)), loc), loc)), loc) + + in + ([(L'.DPage (c, e), loc)], st) + end and corifyStr ((str, _), st) = case str of |