let iter_read_expr f = function
ILexpCoerce( t, n ) -> f n
| ILexpConstant _ -> ()
| ILexpBinop( o, n1, n2 ) -> f n1; f n2
| ILexpUnaryop( o, n ) -> f n
| ILexpInvoke( lv, l ) -> iter_read_lvalue f lv; List.iter f l
| ILexpAddress( lv, l ) -> iter_read_lvalue f lv
| ILexpArgument _ -> ()
| ILexpIdent n -> f n