Why this check? Why not always send <=> to do the comparison. What happens now if a method doesn't defined <=>?