Por que a resolução implícita do Scala falha no método sobrecarregado com o parâmetro type?

O primeiro exemplo encontra com êxito a conversão implícita no métodofoo(String), no entanto, assim que eu adicionar um parâmetro de tipo (consultefails) as compilações não resolvem mais:

object works {
  class A {
    def foo(): String = ???
  }
  implicit class PimpedA(a: A) {
    def foo(i: String): String = ???
  }
  val a = new A()
  a.foo("test") //compiles
}

object fails { //same as `works`, but adds type parameter
  class A {
    def foo[T](): String = ???
  }
  implicit class PimpedA(a: A) {
    def foo[T](i: String): String = ???
  }
  val a = new A()
  PimpedA(a).foo("test") // compiles
  a.foo("test") // error: too many arguments for method foo: ()String
}

Esse comportamento é o mesmo para Scala 2.11.7 e 2.12.0-M3.

A documentação sobre implícitos não parece cobrir isso e eu não encontrei esse caso exato no stackoverflow.

Observe que meu objetivo é sobrecarregar o métodofoo - se eu renomeá-lo, o compilador o encontra.

http://docs.scala-lang.org/tutorials/FAQ/finding-implicits.html

questionAnswers(1)

yourAnswerToTheQuestion