The semantics of implicit transformations are exactly what you observed. If you define an implicit conversion through an implicit method,
trait A trait B implicit def aToB(a : A) : B = new B {}
you will see that now you have an implicit function value A => B
,
scala> implicitly[A => B] res1: A => B = <function1>
And where do you have a view-bound method,
def foo[T <% B](t : T) : B = t
it is equivalent
def foo[T](t : T)(implicit conv : T => B) : B = conv(t)
i.e., the implicit argument corresponding to the estimate has exactly the same form as the value of the implicit function created using the implicit method definition.
source share