Well roughly speaking the type list is immutable where as the type array is mutable because we can update its elements and immutable types can typically be covariant if some conditions or methods are met whereas mutable types can not. 