Вариантность отвечает на вопрос: если Dog — подтип Animal, то List<Dog> — подтип List<Animal>? В Котлин обобщения по умолчанию инвариантны — из соображений безопасности при изменении. out (ковариантность) — когда производите только T, только чтение. in (контравариантность) — когда только потребляете T, как Comparator<Animal>, принимающий Comparator<Dog>.
out — производители