При запросе типа [Int]
и []
в Haskell я получаю:
Prelude> :k [Int]
[Int] :: *
Prelude> :k []
[] :: * -> *
что имеет смысл: первый - это правильный тип, а второй - более высокий тип.
Но когда я делаю то же самое в Scala:
scala> :k -v List[Int]
scala.collection.immutable.List kind is F[+A]
* -(+)-> *
This is a type constructor: a 1st-order-kinded type.
scala> :k -v List
scala.collection.immutable.List kind is F[+A]
* -(+)-> *
This is a type constructor: a 1st-order-kinded type.
... он говорит, что оба типа более высокого типа. Почему первый не классифицируется как подходящий тип? В чем причина этой разницы?