pub fn push<A, F: Fn(&A, &A) -> bool>(arity: usize, f: F, xs: &mut [A])
Given a slice
xs which is all but the last element already a heap, extend
the heap to include the last element.
f(x,y) is whether
x must be nearer to the root than
xs being empty is an error.