fn sift_down_worst_heap( heap: &mut [usize], pos: usize, compare: &mut impl FnMut(usize, usize) -> Ordering, )