Dlaczego scala nie wnioskuje o typie z ogólnych parametrów typu?

Załóżmy, że ta funkcja

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

Dlaczego ten kod się nie kompiluje:

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

Ale to robi:

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

Lub

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

Podczasa typ można wywnioskować z listy, która jestList zInt. Dlaczego scala nie wnioskuje tutaj o typie?

Czy jest jakiś inny sposób?

questionAnswers(1)

yourAnswerToTheQuestion