summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mono_reduce.sml5
-rw-r--r--src/monoize.sml6
2 files changed, 4 insertions, 7 deletions
diff --git a/src/mono_reduce.sml b/src/mono_reduce.sml
index 3c4ac0df..bf68f175 100644
--- a/src/mono_reduce.sml
+++ b/src/mono_reduce.sml
@@ -352,9 +352,10 @@ fun exp env e =
(EApp (b, liftExpInExp 0 e'), loc)), loc))
| ELet (x, t, e', (EAbs (x', t' as (TRecord [], _), ran, e''), loc)) =>
- if impure e' then
+ (*if impure e' then
e
- else
+ else*)
+ (* Seems unsound in general without the check... should revisit later *)
EAbs (x', t', ran, (ELet (x, t, liftExpInExp 0 e', swapExpVars 0 e''), loc))
| ELet (x, t, e', b) =>
diff --git a/src/monoize.sml b/src/monoize.sml
index b8c3a6a9..20677816 100644
--- a/src/monoize.sml
+++ b/src/monoize.sml
@@ -1565,13 +1565,9 @@ fun monoExp (env, st, fm) (all as (e, loc)) =
| L.EFfiApp ("Basis", "nextval", [e]) =>
let
- val un = (L'.TRecord [], loc)
- val int = (L'.TFfi ("Basis", "int"), loc)
val (e, fm) = monoExp (env, st, fm) e
in
- ((L'.EAbs ("_", un, int,
- (L'.ENextval (liftExpInExp 0 e), loc)), loc),
- fm)
+ ((L'.ENextval e, loc), fm)
end
| L.EApp (