Qu'est-ce qui rend covariant ValueTuple?

Cela se compile correctement en C # 7.3 (Framework 4.8): (string, string) s = ("a", "b"); (object, string) o = s; Je sais que c'est du sucre syntaxique pour les éléments suivants, qui se compile également correctement: ValueTuple<string, string> s = new ValueTuple<string, string>("a",...