similary to MapIterator#next, this code should be used after callback execution:
              while (i.isRemoved()) {
                i = i.next;
              }