Type variance, collections, generic type limits