Function merge

pub fn merge<T, F: FnMut(&T, &T) -> bool>(v: &mut [T], scratch: &mut [MaybeUninit<T>], mid: usize, is_less: &mut F)

Merges non-decreasing runs v[..mid] and v[mid..] using scratch as temporary storage, and stores the result into v[..].