The generic interface IEquatable<T> prescribes an Equals operation, and as such it is more fundamental than the interface IComparable<T>.
The generic interface IEqualityComparer<T> prescribes both Equals and GetHashCode.