comparison 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
comparison
equal deleted inserted replaced
386:ef43ed6cd1de 387:7abb28e9d51f
52 | EFfi _ => false 52 | EFfi _ => false
53 | EFfiApp _ => false 53 | EFfiApp _ => false
54 | EApp ((EFfi _, _), _) => false 54 | EApp ((EFfi _, _), _) => false
55 | EApp _ => true 55 | EApp _ => true
56 56
57 | EUnop (_, e) => impure e
58 | EBinop (_, e1, e2) => impure e1 orelse impure e2
59
57 | ERecord xes => List.exists (fn (_, e, _) => impure e) xes 60 | ERecord xes => List.exists (fn (_, e, _) => impure e) xes
58 | EField (e, _) => impure e 61 | EField (e, _) => impure e
59 62
60 | ECase (e, pes, _) => impure e orelse List.exists (fn (_, e) => impure e) pes 63 | ECase (e, pes, _) => impure e orelse List.exists (fn (_, e) => impure e) pes
61 64
230 | EFfi _ => [] 233 | EFfi _ => []
231 | EFfiApp (_, _, es) => List.concat (map (summarize d) es) 234 | EFfiApp (_, _, es) => List.concat (map (summarize d) es)
232 | EApp ((EFfi _, _), e) => summarize d e 235 | EApp ((EFfi _, _), e) => summarize d e
233 | EApp _ => [Unsure] 236 | EApp _ => [Unsure]
234 | EAbs _ => [] 237 | EAbs _ => []
238
239 | EUnop (_, e) => summarize d e
240 | EBinop (_, e1, e2) => summarize d e1 @ summarize d e2
235 241
236 | ERecord xets => List.concat (map (summarize d o #2) xets) 242 | ERecord xets => List.concat (map (summarize d o #2) xets)
237 | EField (e, _) => summarize d e 243 | EField (e, _) => summarize d e
238 244
239 | ECase (e, pes, _) => 245 | ECase (e, pes, _) =>