summaryrefslogtreecommitdiff
path: root/src/rpcify.sml
diff options
context:
space:
mode:
Diffstat (limited to 'src/rpcify.sml')
-rw-r--r--src/rpcify.sml8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/rpcify.sml b/src/rpcify.sml
index 0a1ac8ef..a70d94fe 100644
--- a/src/rpcify.sml
+++ b/src/rpcify.sml
@@ -259,7 +259,12 @@ fun frob file =
(fn (i, _) =>
(ERel (len - i - 1), loc))
ts
- val k = (EAbs ("x", ran, ran, (ERel 0, loc)), loc)
+ val k = (EFfi ("Basis", "return"), loc)
+ val trans = (CFfi ("Basis", "transaction"), loc)
+ val k = (ECApp (k, trans), loc)
+ val k = (ECApp (k, ran), loc)
+ val k = (EApp (k, (EFfi ("Basis", "transaction_monad"),
+ loc)), loc)
val re = (ETailCall (n, args, k, ran, ran), loc)
val (re, _) = foldr (fn (dom, (re, ran)) =>
((EAbs ("x", dom, ran, re),
@@ -273,7 +278,6 @@ fun frob file =
(EApp (be, (ERel (len - i), loc)), loc))
be ts
val ne = (EFfi ("Basis", "bind"), loc)
- val trans = (CFfi ("Basis", "transaction"), loc)
val ne = (ECApp (ne, trans), loc)
val ne = (ECApp (ne, ran), loc)
val unit = (TRecord (CRecord ((KType, loc), []),