summaryrefslogtreecommitdiff
path: root/src/mono_reduce.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-04-16 12:36:01 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-04-16 12:36:01 -0400
commit51e34115de1d243904e9b49c3839fde9c91c96c9 (patch)
treee5b913873d3ffcd5abcc024dbc7d74e8d1c2aad2 /src/mono_reduce.sml
parent949880b71b6b3d105ff5d73b1cf6958509b85c1e (diff)
onError
Diffstat (limited to 'src/mono_reduce.sml')
-rw-r--r--src/mono_reduce.sml5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mono_reduce.sml b/src/mono_reduce.sml
index dafc6ded..19140b81 100644
--- a/src/mono_reduce.sml
+++ b/src/mono_reduce.sml
@@ -61,6 +61,7 @@ fun impure (e, _) =
| EFfiApp ("Basis", "new_channel", _) => true
| EFfiApp ("Basis", "subscribe", _) => true
| EFfiApp ("Basis", "send", _) => true
+ | EFfiApp ("Basis", "onError", _) => true
| EFfiApp _ => false
| EApp ((EFfi _, _), _) => false
| EApp _ => true
@@ -207,6 +208,9 @@ fun match (env, p : pat, e : exp) =
consider (xps, env)
end
+ | (PNone _, ENone _) => Yes env
+ | (PSome (_, p), ESome (_, e)) => match (env, p, e)
+
| _ => Maybe
datatype event =
@@ -282,6 +286,7 @@ fun reduce file =
| EFfiApp ("Basis", "new_channel", es) => ffi es
| EFfiApp ("Basis", "subscribe", es) => ffi es
| EFfiApp ("Basis", "send", es) => ffi es
+ | EFfiApp ("Basis", "onError", es) => ffi es
| EFfiApp (_, _, es) => List.concat (map (summarize d) es)
| EApp ((EFfi _, _), e) => summarize d e
| EApp _ =>