comparison src/mono_reduce.sml @ 489:463dad880470

Ignore UseRel effects in [let] expansions
author Adam Chlipala <adamc@hcoop.net>
date Tue, 11 Nov 2008 15:32:10 -0500
parents 2280193bf298
children 74800be65591
comparison
equal deleted inserted replaced
488:5521bb0b4014 489:463dad880470
423 | _ => doSub () 423 | _ => doSub ()
424 in 424 in
425 if impure e' then 425 if impure e' then
426 let 426 let
427 val effs_e' = summarize 0 e' 427 val effs_e' = summarize 0 e'
428 val effs_e' = List.filter (fn x => x <> UseRel) effs_e'
428 val effs_b = summarize 0 b 429 val effs_b = summarize 0 b
429 430
430 (*val () = Print.prefaces "Try" 431 (*val () = Print.prefaces "Try"
431 [("e", MonoPrint.p_exp env (e, ErrorMsg.dummySpan)), 432 [("e", MonoPrint.p_exp env (e, ErrorMsg.dummySpan)),
432 ("e'", p_events effs_e'), 433 ("e'", p_events effs_e'),
433 ("b", p_events effs_b)]*) 434 ("b", p_events effs_b)]*)
434 435
435 fun does eff = List.exists (fn eff' => eff' = eff) effs_e' 436 fun does eff = List.exists (fn eff' => eff' = eff) effs_e'
436 val writesPage = does WritePage 437 val writesPage = does WritePage
437 val readsDb = does ReadDb 438 val readsDb = does ReadDb
438 val writesDb = does WriteDb 439 val writesDb = does WriteDb