Kind 类型的 SBT 输出

SBT Output for Kind Type

关于类型论,数学和计算机科学领域都倾向于使用相同的符号表示种类和种类构造,即符号:

  1. *
  2. ->

Haskell甚至采用了这种表示法:

Prelude> :k Maybe
Maybe :: * -> *

但在 sbt 中,我们得到:

scala> :k Option
scala.Option's kind is F[+A]

Haskell方式更容易理解,因为它直接匹配类型理论的文献。为什么 SBT 不使用 *-> 符号?我可以看到通过 sbt 方式传递的唯一额外信息是类型差异。

尝试详细标志 (-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 :种类)

https://github.com/scala/scala/pull/2340