As others have said, it is logically inconsistent for a generic type to be both covariant and contravariant. There are some excellent answers here so far, but let me add two more.

First off, read my article on the subject of variance "validity":

http://blogs.msdn.com/b/ericlippert/archive/2009/12/03/exact-rules-for-variance-validity.aspx

By definition, if a type is "covariantly valid" then it is not usable in a contravariant way. If it is "contravariantly valid" then it is not usable in a covariant way.  Something that is both covariantly valid and contravariantly valid is not usable in either a covariant or contravariant way. That is, it is invariant.  So, there is the union of covariant and contravariant: their union is invariant.

Second, let's suppose for a moment that you got your wish and that there was a type annotation that worked the way I think you want:

interface IBurger&lt;in and out T&gt; {}


Suppose you have an IBurger&lt;string&gt;.  Because it is covariant, that is convertible to IBurger&lt;object&gt;.  Because it is contravariant, that is in turn convertible to IBurger&lt;Exception&gt;, even though "string" and "Exception" have nothing whatsoever in common. Basically "in and out" means that IBurger&lt;T1&gt; is convertible to any type IBurger&lt;T2&gt; for any two reference types T1 and T2. How is that useful? What would you do with such a feature?  Suppose you have an IBurger&lt;Exception&gt;, but the object is actually an IBurger&lt;string&gt;. What could you do with that, that both takes advantage of the fact that the type argument is Exception, and allows that type argument to be a complete lie, because the "real" type argument is an utterly unrelated type?

To answer your follow-up question: implicit reference type conversions involving arrays are covariant; they are not contravariant. Can you explain why you incorrectly believe them to be contravariant? 

Covariance and Contravariance on the same type argument
Trying to make a local copy of a live ExpressionEngine site, my process stop when importing the live database. 
I'm using EE 2.5.5 and several key add-ons like Publisher, Playa, Matrix and CE Cache.
I made the import using Sequel Pro and I just click "Ignore errors".

I can see the control panel and everything seems to be OK in the backend. I noticed though that I have to install all the add-ons.

But then, these are the MySQL errors I got when importing:

[ERROR in query 52] Duplicate entry '5' for key 'PRIMARY'
[ERROR in query 72] Unknown column 'field_id_2' in 'field list'
[ERROR in query 73] Unknown column 'field_id_2' in 'field list'
[ERROR in query 74] Unknown column 'field_id_2' in 'field list'
[ERROR in query 75] Unknown column 'field_id_2' in 'field list'
[ERROR in query 76] Unknown column 'field_id_2' in 'field list'
[ERROR in query 77] Unknown column 'field_id_2' in 'field list'
[ERROR in query 78] Unknown column 'field_id_2' in 'field list'
[ERROR in query 79] Unknown column 'field_id_2' in 'field list'
[ERROR in query 80] Unknown column 'field_id_2' in 'field list'
[ERROR in query 81] Unknown column 'field_id_2' in 'field list'
[ERROR in query 82] Unknown column 'field_id_2' in 'field list'
[ERROR in query 83] Unknown column 'field_id_2' in 'field list'
[ERROR in query 84] Unknown column 'field_id_2' in 'field list'
[ERROR in query 85] Unknown column 'field_id_2' in 'field list'
[ERROR in query 86] Unknown column 'field_id_2' in 'field list'
[ERROR in query 87] Unknown column 'field_id_2' in 'field list'
[ERROR in query 88] Unknown column 'field_id_2' in 'field list'
[ERROR in query 89] Unknown column 'field_id_2' in 'field list'
[ERROR in query 90] Unknown column 'field_id_2' in 'field list'
[ERROR in query 91] Unknown column 'field_id_2' in 'field list'
[ERROR in query 92] Unknown column 'field_id_2' in 'field list'
[ERROR in query 93] Unknown column 'field_id_2' in 'field list'
[ERROR in query 94] Unknown column 'field_id_2' in 'field list'
[ERROR in query 95] Unknown column 'field_id_2' in 'field list'
[ERROR in query 96] Unknown column 'field_id_2' in 'field list'
[ERROR in query 97] Unknown column 'field_id_2' in 'field list'
[ERROR in query 98] Unknown column 'field_id_2' in 'field list'
[ERROR in query 99] Unknown column 'field_id_2' in 'field list'
[ERROR in query 100] Unknown column 'field_id_2' in 'field list'
[ERROR in query 101] Unknown column 'field_id_2' in 'field list'
[ERROR in query 102] Unknown column 'field_id_2' in 'field list'
[ERROR in query 103] Unknown column 'field_id_2' in 'field list'
[ERROR in query 104] Unknown column 'field_id_2' in 'field list'
[ERROR in query 105] Unknown column 'field_id_2' in 'field list'
[ERROR in query 106] Unknown column 'field_id_2' in 'field list'
[ERROR in query 107] Unknown column 'field_id_2' in 'field list'
[ERROR in query 108] Unknown column 'field_id_2' in 'field list'
[ERROR in query 109] Unknown column 'field_id_2' in 'field list'
[ERROR in query 110] Unknown column 'field_id_2' in 'field list'
[ERROR in query 111] Unknown column 'field_id_2' in 'field list'
[ERROR in query 112] Unknown column 'field_id_2' in 'field list'
[ERROR in query 113] Unknown column 'field_id_2' in 'field list'
[ERROR in query 114] Unknown column 'field_id_2' in 'field list'
[ERROR in query 115] Unknown column 'field_id_2' in 'field list'
[ERROR in query 130] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 141] Duplicate entry '2' for key 'PRIMARY'
[ERROR in query 143] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 183] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 362] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 365] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 368] Duplicate entry '1-1' for key 'PRIMARY'
[ERROR in query 370] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 379] Duplicate entry '3' for key 'PRIMARY'
[ERROR in query 724] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 726] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 737] Unknown column 'sess_start' in 'field list'
[ERROR in query 739] Unknown column 'site_pages' in 'field list'
[ERROR in query 743] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 748] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 750] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 752] Duplicate entry '1' for key 'PRIMARY'
[ERROR in query 786] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


My concern is that this is going to create problems in my local site, which I need to be in pretty good shape as next step is going into Git workflow and deploy changes to remote, etc.

Any idea?

Sergio 
