Apa yang membuat ValueTuple kovarian?

Ini mengkompilasi dengan benar dalam C # 7.3 (Kerangka 4.8): (string, string) s = ("a", "b"); (object, string) o = s; Saya tahu ini adalah gula sintaksis untuk yang berikut, yang juga mengkompilasi dengan benar: ValueTuple<string, string> s = new ValueTuple<string, string>("a",...