diff src/mono_reduce.sml @ 387:7abb28e9d51f

Binops; equality tested on int; lame 404 substitute
author Adam Chlipala <adamc@hcoop.net>
date Tue, 21 Oct 2008 09:50:19 -0400
parents 389399d65331
children ab3177746c78
line wrap: on
line diff
--- a/src/mono_reduce.sml	Sun Oct 19 16:49:09 2008 -0400
+++ b/src/mono_reduce.sml	Tue Oct 21 09:50:19 2008 -0400
@@ -54,6 +54,9 @@
       | 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 @@
       | 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