In some circumstances, declaring Equatable on a type adds an implementation. Does this happen when declaring a derived protocol? This does work with Hashable, since that can be automated too, but what about Comparable? When directly declaring only Comparable, do both < and == need to be defined? Or just < (with == automated)?