pub fn partition_point<T, F>(v: &[T], func: F) -> usizewhere
    T: Clone,
    F: FnMut(&T) -> bool,