¿Cómo determinar la varianza del parámetro de tipo?

Inspirado por Ejemplos reales de co y contravarianza en Scala Pensé que una mejor pregunta sería:

Al diseñar una biblioteca, ¿hay un conjunto específico de preguntas que debe hacerse al determinar si un parámetro de tipo debe ser covariante o contravariante? ¿O debe hacer que todo sea invariable y luego cambiar según sea necesario?

Respuestas a la pregunta(1)

Su respuesta a la pregunta