title: What problem does IStructuralEquatable and IStructuralComparable solve?
body: <p>I've noticed these two interfaces, and several associated classes, have been added in .NET 4. They seem a bit superfluous to me; I've read several blogs about them, but I still can't figure out what problem they solve that was tricky before .NET 4.</p>
  
  <p>What use are <code>IStructuralEquatable</code> and <code>IStructuralComparable</code>?</p>