Por que a inferência de tipo Scala falha aqui?

eu tenhoesta aula em Scala:

object Util {
  class Tapper[A](tapMe: A) {
    def tap(f: A => Unit): A = {
      f(tapMe)
      tapMe
    }

    def tap(fs: (A => Unit)*): A = {
      fs.foreach(_(tapMe))
      tapMe
    }
  }

  implicit def tapper[A](toTap: A): Tapper[A] = new Tapper(toTap)
}

Agora,

"aaa".tap(_.trim)

não compila, dando o erro

erro: tipo de parâmetro ausente para a função expandida ((x $ 1) => x $ 1.trim)

Por que o tipo não é inferido comoString? Pelo erro, parece que a conversão implícita é acionada (caso contrário, o erro seria semelhante ao de "tap não é um membro da classeString"). E parece que a conversão deve ser paraTapper[String], o que significa que o tipo do argumento éString => Unit (ou(String => Unit)*)

O interessante é que se eu comentarou dotap definições, então ele compila.

questionAnswers(1)

yourAnswerToTheQuestion