code: @SuppressWarnings("unchecked")
    protected <T extends Statement> void replaceAll(List<T> stats) {
      ListIterator<T> iter = stats.listIterator();
      while (iter.hasNext())
        iter.set((T) replace(iter.next()));
    }
docs: Visits the statements in the specified mutable list. If a statement's
  visit method calls replaceVisitedMethodWith(), the statement will be
  replaced.