The creation of an implicit object is required each time the call is invoked, the other simply places a type constraint on the object passed to the function. In general, I would prefer an ad in which you indicate [T <: Dummy], rather than implicit.
, , , . , List[A] :
def sum(implicit ev: Numeric[A]) = ...
" " A " , " sum ", ..." , , :
class Foo[T](value: T){
def doubleString = value.toString() + value.toString()
def specialSauce(implicit ev: T <:< Dummy): Dummy = ...
}
Foo[Int], , specialSauce , T Dummy.