Почему scala не выводит тип из параметров универсального типа?

Предположим, эта функция

def func[A](data: List[A], mapper: A => String) = { 
  data.map(item => mapper(item)) 
}

Почему этот код нет компилировать:

val list = List(1, 2, 3)
func(list, a => a.toString)

Но этот делает:

val list = List(1, 2, 3)
func[Int](list, a => a.toString)

Или же

val list = List(1, 2, 3)
func(list, (a: Int) => a.toString)

В то время какa тип может быть выведен из списка, которыйList изInt, Почему нетт скала выводить тип здесь?

Есть ли другой путь?

Ответы на вопрос(1)

Ваш ответ на вопрос