Некоторые API-интерфейсы Scala аналогичны этому, например,
trait Function1[-T1, +R] extends AnyRef { self =>
Я знаю, как это сглаживание работает вообще, но не вижу, как от этого выигрывают такие функции, как Function1. Функция1 не использует self нигде в своем определении, кроме первоначального упоминания, поэтому в чем его цель?
Варианты этого вопроса заданы ранее, но ответы прямо не применимы. Ответы обсуждались самими типами и внутренними классами, но я не вижу, как это применимо здесь.