Я немного запутался в +: и ::, которые доступны.
Похоже, оба они дают одинаковые результаты.
scala> List(1,2,3)
res0: List[Int] = List(1, 2, 3)
scala> 0 +: res0
res1: List[Int] = List(0, 1, 2, 3)
scala> 0 :: res0
res2: List[Int] = List(0, 1, 2, 3)
Для моего исходного кода исходный код для обоих методов выглядит аналогичным (метод плюс-двоеточие имеет дополнительное условие для дженериков с использованием заводов-застройщиков).
Какой из этих методов следует использовать и когда?