Why this scala code
case class Foo[T]() {
def bar(tt: T): Unit = ???
def bar_(s: String)(implicit ev : T =:= String): Unit = bar(s)
}
triggers this compilation error
[error] type mismatch;
[error] found : s.type (with underlying type String)
[error] required: T
[error] def foo2(s: String)(implicit ev: T =:= String) = foo(s)