pub fn equal_range_by<T, F>(slice: &[T], key: F) -> Range<usize> where
    F: FnMut(&T) -> Ordering