No, that wasn't where I was coming from. What arose was that I had some classes that didn't have interfaces, but which I realized I needed to extract interfaces for. I had already implemented IEquatable (of C), and was using it in some fairly ancient code where I compared listItem(x) = otherListItem(x). When those were both lists of C, that worked fine. Once those became lists of IC, then that line broke.

Solving that is, as you said, quite simple, since listItem(x).Equals(otherListItem(x)) does the job, but that change had to be made, simple though it was.