code: public Filter<S> mergeRemainderFilter(FilteringScore<S> other) {
          Filter<S> thisRemainderFilter = getRemainderFilter();
  
          if (this == other) {
              return thisRemainderFilter;
          }
  
          Filter<S> otherRemainderFilter = other.getRemainderFilter();
  
          if (thisRemainderFilter == null) {
              return otherRemainderFilter;
          } else if (otherRemainderFilter == null) {
              return thisRemainderFilter;
          } else if (thisRemainderFilter.equals(otherRemainderFilter)) {
              return thisRemainderFilter;
          } else {
              return thisRemainderFilter.or(otherRemainderFilter);
          }
      }
docs: Merges the remainder filter of this score with the one given using an
  'or' operation. Call canMergeRemainderFilter first to verify if the
  merge makes any sense. Returns null if no remainder filter at all.