The problem is that the full signature toMapis this:
def toMap[T, U](implicit ev: <:<[A, (T, U)]): Map[T, U]
Collection API designers did not want to compile List(1).toMap, so they require that you provide hidden evidence that the contents of the list are tuples.
- toMap , . - , toMap , , .
( , ) - apply. whatever(foo) whatever.apply(foo) ( whatever ), , :
scala> List(('c', 1)).toMap.apply('c')
res0: Int = 1
, toMap c .