diff src/mono_reduce.sml @ 1171:7a2a7a8f9cab

benignEffectful
author Adam Chlipala <adamc@hcoop.net>
date Sat, 27 Feb 2010 16:49:11 -0500
parents 7a31e0cf25e9
children ae3036773768
line wrap: on
line diff
--- a/src/mono_reduce.sml	Sat Feb 27 14:57:57 2010 -0500
+++ b/src/mono_reduce.sml	Sat Feb 27 16:49:11 2010 -0500
@@ -52,7 +52,7 @@
                               | EDml _ => true
                               | ENextval _ => true
                               | ESetval _ => true
-                              | EFfiApp (m, x, _) => Settings.isEffectful (m, x)
+                              | EFfiApp (m, x, _) => Settings.isEffectful (m, x) orelse Settings.isBenignEffectful (m, x)
                               | EServerCall _ => true
                               | ERecv _ => true
                               | ESleep _ => true
@@ -87,7 +87,7 @@
       | ENone _ => false
       | ESome (_, e) => impure e
       | EFfi _ => false
-      | EFfiApp (m, x, _) => Settings.isEffectful (m, x)
+      | EFfiApp (m, x, _) => Settings.isEffectful (m, x) orelse Settings.isBenignEffectful (m, x)
       | EApp ((EFfi _, _), _) => false
       | EApp _ => true
 
@@ -372,7 +372,7 @@
                       | ESome (_, e) => summarize d e
                       | EFfi _ => []
                       | EFfiApp (m, x, es) =>
-                        if Settings.isEffectful (m, x) then
+                        if Settings.isEffectful (m, x) orelse Settings.isBenignEffectful (m, x) then
                             List.concat (map (summarize d) es) @ [Unsure]
                         else
                             List.concat (map (summarize d) es)