pub(super) fn try_reduce_with<PI, R, T>(pi: PI, reduce_op: R) -> Option<T>where
    PI: ParallelIterator<Item = T>,
    R: Fn(T::Output, T::Output) -> T + Sync,
    T: Try + Send,