code: public OrderingList<S> mergeRemainderOrdering(OrderingScore<S> other) {
          OrderingList<S> thisRemainderOrdering = getRemainderOrdering();
  
          if (this == other) {
              return thisRemainderOrdering;
          }
  
          OrderingList<S> otherRemainderOrdering = other.getRemainderOrdering();
  
          // Choose the longer list.
  
          if (thisRemainderOrdering.size() == 0) {
              return otherRemainderOrdering;
          } else {
              if (otherRemainderOrdering.size() == 0) {
                  return thisRemainderOrdering;
              } else if (thisRemainderOrdering.size() >= otherRemainderOrdering.size()) {
                  return thisRemainderOrdering;
              } else {
                  return otherRemainderOrdering;
              }
          }
      }
docs: Merges the remainder orderings of this score with the one given. Call
  canMergeRemainderOrdering first to verify if the merge makes any sense.