docs: public void add(CloneGroup current) {
      Iterator<CloneGroup> i = filtered.iterator();
      while (i.hasNext()) {
        CloneGroup earlier = i.next();
        // Note that following two conditions cannot be true together - proof by contradiction:
        // let C be the current clone and A and B were found earlier
        // then since relation is transitive - (A in C) and (C in B) => (A in B)
        // so A should be filtered earlier
        if (Filter.containsIn(current, earlier)) {
          // current clone fully covered by clone, which was found earlier
          return;
        }
        if (Filter.containsIn(earlier, current)) {
          // current clone fully covers clone, which was found earlier
          i.remove();
        }
      }
      filtered.add(current);
    }