let rec reduce_stmt ~acc stmt =
  let self = (reduce_stmt ~acc) in
  match stmt.stmt_t with
  | CTTstmtCompound(dcls, stmts) -> 
      let dcls = reduce_ldecls ~acc dcls in
      let stmts = list_map_ordered self stmts in
      { stmt with stmt_t = CTTstmtCompound(dcls, stmts) }
  | s ->
      visit_statement
        ~v_ldecl:id (* dummy *)
        ~v_expr:id ~self stmt