title: Guid == null should not be allowed by the compiler
body: <blockquote>
    <p>The behaviour described below is specific to .net-3.5 only</p>
  </blockquote>
  
  <p>I just ran across the most astonishing behavior in the C# compiler;</p>
  
  <p>I have the following code:</p>
  
  <pre><code>Guid g1 = Guid.Empty;
  bool b1= (g1 == null);
  </code></pre>
  
  <p>Well, <strong>Guid is not nullable therefore it can never be equal to null</strong>.
  The <strong>comparison</strong> i'm making in line 2 <strong>always returns false</strong>.</p>
  
  <p><strong>If you make the same thing for an integer, the compiler issues an warning</strong> saying the result will always be false:</p>
  
  <pre><code>int x=0;
  bool b2= (x==null);
  </code></pre>
  
  <p>My question is: <strong>Why does the compiler lets you compare a Guid to null</strong>?<br>
  According to my knowledge, it already knows the result is always false.<br>
  Is the built-in conversion done in such a way that the compiler does assume null is a possible value?<br>
  Am I missing anything here?</p>