diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-10-21 09:50:19 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-10-21 09:50:19 -0400 |
commit | f750e27d0e16da032227dbc71ecb7c63f5b77bc7 (patch) | |
tree | c1cd77d3f82dedbd270450204612186c547a83e8 /src/mono_reduce.sml | |
parent | 4f6178266ffe0bf5423878b46486b82c19a56810 (diff) |
Binops; equality tested on int; lame 404 substitute
Diffstat (limited to 'src/mono_reduce.sml')
-rw-r--r-- | src/mono_reduce.sml | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mono_reduce.sml b/src/mono_reduce.sml index e288e34e..e97f3461 100644 --- a/src/mono_reduce.sml +++ b/src/mono_reduce.sml @@ -54,6 +54,9 @@ fun impure (e, _) = | EApp ((EFfi _, _), _) => false | EApp _ => true + | EUnop (_, e) => impure e + | EBinop (_, e1, e2) => impure e1 orelse impure e2 + | ERecord xes => List.exists (fn (_, e, _) => impure e) xes | EField (e, _) => impure e @@ -233,6 +236,9 @@ fun summarize d (e, _) = | EApp _ => [Unsure] | EAbs _ => [] + | EUnop (_, e) => summarize d e + | EBinop (_, e1, e2) => summarize d e1 @ summarize d e2 + | ERecord xets => List.concat (map (summarize d o #2) xets) | EField (e, _) => summarize d e |