Discussion around type-safe equals