title: How is Moq's It.IsAny<T>() implemented
body: <p>For C#'s Moq, I went in through debugger, and noticed <code>It.IsAny&lt;T&gt;()</code> just compiles to a certain value of <code>T</code>, like <code>Guid.Empty</code> for <code>Guid</code>s, 0 for <code>int</code>s, etc.</p>
  
  <p>How does Moq tell the difference between an <code>It.IsAny&lt;T&gt;</code> and the value that it compiles to?</p>