code: public static <T extends MatchResult, S extends MatchType> Predicate<T> lowerThan(S matchType) {
          return new LowerThanPredicate<T, S>(matchType);
      }
docs: Generates a Predicate that only accepts the Match Results that have a Match Type lower than matchType
  
  @param matchType the matchType that defines the boundary
  @param <T>       a subclass of MatchResult
  @param <S>       a subclass of MatchType
  @return the Predicate