关于类型理论,数学和计算机科学领域都倾向于使用相同的符号来表示种类和种类,即符号:
*
->
Haskell甚至采用了这种表示法:
Prelude> :k Maybe
Maybe :: * -> *
但在sbt
中,我们得到:
scala> :k Option
scala.Option's kind is F[+A]
Haskell方式更容易理解,因为它直接匹配类型理论的文献。为什么SBT不使用*
和->
表示法?我可以看到用sbt
方式传递的唯一额外信息是类型差异。
答案 0 :(得分:3)
尝试详细标记(-v)
scala> :k -v Option
scala.Option's kind is F[+A]
* -(+)-> *
This is a type constructor: a 1st-order-kinded type.
更多信息:
http://docs.scala-lang.org/scala/2.11/(Ctrl + F:kind)