@Lampotrias https://kotlinlang.ru/docs/reference/generics.html у вас там модификатор out насколько я вижу "мы можем объявить типовой параметр T класса Source таким образом, чтобы удостовериться, что он только возвращается (производится) членами Source<T>, и никогда не потребляется. Чтобы сделать это, нам необходимо использовать модификатор out"
Да, наверно изучить Java все же стоит (чем я сейчас и занимаюсь), для понимания принципов ООП, типизации и ТД. Синтаксический сахар приятен, но на начальных этапах изучения рождает иллюзии, которые потом нелегко будет вытравить.