Ответ 1
Кажется, что scala
отлично разбирается в [Int]
в List[Int]
, но предпочитает игнорировать его и всегда смотреть на "внешний" тип намеренно.
Если это не так, то type ListOfInt = List[Int]
, за которым следует :k -v ListOfInt
, будет *
not * -> *
, но это не так:
scala> :k -v List
scala.collection.immutable.List kind is F[+A]
* -(+)-> *
This is a type constructor: a 1st-order-kinded type.
scala> :k -v List[Int]
scala.collection.immutable.List kind is F[+A]
* -(+)-> *
This is a type constructor: a 1st-order-kinded type.
scala> type ListOfInt = List[Int]
defined type alias ListOfInt
scala> :k -v ListOfInt
scala.collection.immutable.List kind is F[+A]
* -(+)-> *
This is a type constructor: a 1st-order-kinded type.