Removed IEquatable requirement