@Override
 public <R> R collect(
     Supplier<R> supplier, ObjIntConsumer<R> accumulator, BiConsumer<R, R> combiner) {
   return performOperation(
       TerminalFunctions.collectFunction(supplier, accumulator, combiner),
       true,
       (e1, e2) -> {
         combiner.accept(e1, e2);
         return e1;
       },
       null);
 }