Когда я создаю маленькую Карту в реплее, она говорит мне, что ее тип неизменен. Карта
scala> Map(1->1, 2->2)
res8: scala.collection.immutable.Map[Int,Int] = Map((1,1), (2,2))
Хотя это не вся правда, как в этом случае
scala> Map(1->1, 2->2).getClass
res9: java.lang.Class[_] = class scala.collection.immutable.Map$Map2
Как Scala решает, что печатать как тип выражения?