Por que scala não infere o tipo a partir de parâmetros de tipo genérico?

Suponha que esta função

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

Por que esse código não compila:

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

Mas este faz:

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

Ou

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

Enquantoa pode ser inferido a partir da lista que éList doInt. Por que scala não infere o tipo aqui?

Existe alguma outra maneira?

questionAnswers(1)

yourAnswerToTheQuestion