fn sort_unstable_by<T, F>(array: &mut [T], limit: usize, cmp: F)where F: FnMut(&T, &T) -> Ordering,
we can only do this if the T is primitive