code: @SuppressWarnings("rawtypes")
      public static <T> Collector<T, ?, Optional<T>> first() {
          final Supplier<Holder<T>> supplier = (Supplier) first_last_supplier;
          final BiConsumer<Holder<T>, T> accumulator = (BiConsumer) first_accumulator;
          final BinaryOperator<Holder<T>> combiner = (BinaryOperator) first_last_combiner;
          final Function<Holder<T>, Optional<T>> finisher = (Function) first_last_finisher;
  
          return new CollectorImpl<>(supplier, accumulator, combiner, finisher, CH_NOID);
      }
docs: Only works for sequential Stream.
  
  @return
  @throws UnsupportedOperationException operated by multiple threads