summaryrefslogtreecommitdiff
path: root/src/mono_reduce.sml
diff options
context:
space:
mode:
Diffstat (limited to 'src/mono_reduce.sml')
-rw-r--r--src/mono_reduce.sml11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/mono_reduce.sml b/src/mono_reduce.sml
index 07c7c5f5..57a9cc6d 100644
--- a/src/mono_reduce.sml
+++ b/src/mono_reduce.sml
@@ -352,10 +352,15 @@ fun exp env e =
| ELet (x, t, e', b) =>
let
+ fun doSub () = #1 (reduceExp env (subExpInExp (0, e') b))
+
fun trySub () =
- case e' of
- (ECase _, _) => e
- | _ => #1 (reduceExp env (subExpInExp (0, e') b))
+ case t of
+ (TFfi ("Basis", "string"), _) => doSub ()
+ | _ =>
+ case e' of
+ (ECase _, _) => e
+ | _ => doSub ()
in
if impure e' then
let