Объяснение сигнатуры функции карты Scala?

Этот код применяет функцию к списку значений и устанавливает каждое значение в списке параметров со значением 4:

  val l = List(1,2,3,4,5)                         //> l  : List[Int] = 
  val v = 4                                       //> v  : Int = 4
  def g(v:Int) = List(v-1, v, v+1)                //> g: (v: Int)List[Int]
 l map (x => {f(x);})                            //> res0: List[Option[Int]] = List(Some(4), Some(4), Some(4), Some(4), Some(4)) 

Подпись карты:

   def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {

Поскольку B является параметром первого типа (в map [B, That]) это означает, что он типизирован с префиксным операндом 'l' (Список)?

Как это «А» набрал? Компилятор scala каким-то образом проверяет тип в списке 'l' и сделать вывод, что его типа Int?

Как 'Тот' набрал?

Ответы на вопрос(1)

Ваш ответ на вопрос