title: Why does Tuple<T1,T2,T3> not inherit from Tuple<T1,T2>?
body: <p>Since C# 4.0, <code>Tuple</code> classes are available. Why is a <code>Tuple</code> with three elements not a subclass of a <code>Tuple</code> with two elements?</p>
  
  <p>This can be useful when defining an operation <code>First : Tuple&lt;T1,T2&gt; -&gt; T1</code> which will work for any tuple, regardless of the number of additional items.</p>
  
  <p>Furthermore since the elements of a tuple are read-only, why is a <code>Tuple&lt;T1,T2&gt;</code> not covariant? (For example, a <code>ITuple&lt;Foo,Bar&gt;</code> being a <code>ITuple&lt;SuperFoo,SuperBar&gt;</code> as well)</p>