code: public boolean with(PrefixSet op) {
          PrefixSet next;
          long tmp;
          Prefix l;
          Prefix r;
  
          next = new PrefixSet();
          l = todo.iterator();
          while (l.step()) {
              r = op.iterator();
              while (r.step()) {
                  tmp = Prefix.concat(l.data, r.data, k);
                  if (tmp >= firstFullValue) {
                      done.add(tmp);
                  } else {
                      next.add(tmp);
                  }
              }
          }
          todo = next;
          return todo.isEmpty();
      }
docs: true when done