Since we want the user to be able to pass a negative comparison function, the extra layer of wrapping is now needed