Использование new с Scala final case class

В главе 22 книги «Программирование на Scala» класс :: (минусы) определяется как

final case class ::[T](hd: T, tl: List[T]) extends List[T] {
  //...
}

:: в классе List определяется следующим образом:

def ::[U >: T](x: U): List[U] = new scala.::(x, this)

Почему новый требуется для создания экземпляра final case класс :: ? Это чисто для устранения неоднозначности?

5
задан Harrison 15 December 2011 в 03:32
поделиться