A[T] extends (B[T] => C[T])
где трейты B и C сами ковариантны
Вроде никак
Когда ковариантность не получается, приходится требовать её по месту применения через экзистенциональные типы
если понимаешь, что делаешь, то @uncheckedVariance
Несколько не по делу, но оказывается можно написать такое: trait X[+T, -A[-_], +B[+_]] extends (A[T] => B[T])и такое trait X[-T, -A[+_], +B[-_]] extends (A[T] => B[T])
Обсуждают сегодня