Нужно действительно спросить, "почему X должно быть изменяемым?" Лучше принять значение по умолчанию к неизменности из-за преимуществ, уже упомянутых принцесса Fluff . Это должно быть исключение, что что-то изменяемо.
, К сожалению, большая часть текущего значения по умолчанию языков программирования к переменчивости, но надо надеяться в будущем значение по умолчанию находится больше на неизменности (см. Список пожеланий А для Следующего Основного Языка программирования ).
trait Foo {
type MyFunction = (Int,Int) => Boolean
def checkInts(f: MyFunction)
def checkInts(f: Option[MyFunction])
}