has_side_effect is doing right thing now; add const_propagation; prim_propagation will probably useless; const_propagation is still conservative; function inlining needs rewrite; add command line option to s5.ml