@Override
    Operation combineWithNext(Operation next) {
      if (next instanceof TerminalOperation.ToArrayTerminalOperation ||
          (next instanceof TerminalOperation.ToCollectionTerminalOperation
           && ((TerminalOperation.ToCollectionTerminalOperation)next).isList())) {
        return new TerminalOperation.SortedTerminalOperation((TerminalOperation.AccumulatedOperation)next, myComparator);
      }
      return null;
    }
@Override
    Operation combineWithNext(Operation next)