Code Contracts spike. Some adds to IsComparable