Implicits can use other implicits to convert values. Therefore, given yours toInt:
implicit def toInt[A](l: List[A]): Int = l.size
2- Int, . (List[Int], Int) (Int, Int):
implicit def tupleConvert[A <% Int, C](x: (A, C)): (Int, C) = (x._1, x._2)
A <% Int , , implict A Int.
, :
implicit def tupleConvert2[A <% B, B, C](x: (A, C)): (B, C) = (x._1, x._2)
2- (A, C) (B, C) A B. - Scala implicits, *.
* ( , , SI-2046, SI-3340, )