Implicit conversion for generic type?

Viewed 193

Considering this function:

def justTrue[T, S](seq: S)(implicit ev: S <:< Seq[T]) = true
justTrue(List(1,2,3))
>> true

It works. But why can't the same signature be used as a implicit conversion?

implicit class TruthTeller[T, S](seq: S)(implicit ev: S <:< Seq[T]) {
  def justTrue = true
}
List(1,2,3).justTrue
>> error: Cannot prove that List[Int] <:< Seq[T].

Isn't implicit conversion just a function?

2 Answers
Related