title: How is Generic Covariance & Contra-variance Implemented in C# 4.0?
body: <p>I didn't attend PDC 2008, but I heard some news that C# 4.0 is announced to support Generic covariance and contra-variance. That is, <code>List&lt;string&gt;</code> can be assigned to <code>List&lt;object&gt;</code>. How could that be?</p>
  
  <p>In Jon Skeet's book <strong><em>C# in Depth</em></strong>, it is explained why C# generics doesn't support covariance and contra-variance. It is mainly for writing secure code. Now, C# 4.0 changed to support them. Would it bring chaos?</p>
  
  <p>Anybody know the details about C# 4.0 can give some explanation?</p>