и неявное не может быть разрешено.
ps://jto.github.io/articles/typelevel_quicksortМы подвержены :
тип чейSum
выглядит так:apply
Теперь мы можем использовать уточнение типа напрямую вместо Aux, но остается вопрос: почему это (явный тип возврата) необходимо? Разве не было бы "очевидно", что возвращаемый тип
def apply[A <: Nat, B <: Nat](implicit sum: Sum[A, B]): Aux[A, B, sum.Out] = sum
будет иметь тип Sum # Out, равный sum.Out?apply
Если мы удалим его, и мы просто используем
выглядит нормально, кроме добавленияval x = Sum[_0, _1]
не будет работать, говоря, что компилятор не может найти неявную сумму.val y = Sum[x.Out, _1]
Как получилось, что компилятор "забывает" точный тип x.Out?
Насколько я вижу