docs: private static List<Term> intersectIgnorePosition(
              List<List<Term>> termsToIntersect) {
          if (termsToIntersect.isEmpty()) {
              return Collections.emptyList();
          }
          List<Term> termsUnderConsideration = new ArrayList<Term>(termsToIntersect.get(0));
          for (int i = 1; i < termsToIntersect.size(); i++) {
              List<Term> currentRoundTerms = termsToIntersect.get(i);
              List<Term> termsStillJustified = new ArrayList<Term>();
              for (Term term : termsUnderConsideration) {
                  if (containsIgnorePosition(currentRoundTerms, term)) {
                      termsStillJustified.add(term);
                  }
              }
              termsUnderConsideration = termsStillJustified;
          }
          return termsUnderConsideration;
      }