Hmmm, I wonder how you can not see the need : I do not think that my situation is so exotic really: somebody wants to provide an API that returns objects. The client programs against an interface for these objects but does not want to care about the implementation. Now at some point client simply wants to compare two objects client ...