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