Why are Arrays invariant, but Lists covariant?

Viewed 11277

E.g. why does

val list:List[Any] = List[Int](1,2,3)

work, but

val arr:Array[Any] = Array[Int](1,2,3)

fails (because arrays are invariant). What is the desired effect behind this design decision?

4 Answers
Related