Haskell类型系统扩展之Kind

2011-04-29 黄毅

Kind 之于类型正如类型之于值。可以理解为类型的类型。

Kind 的规则很简单,常规类型的 Kind* ,类型构造器的 KindP -> Q ,其中 PQ 都是 Kind 。所以 Haskell98 中,所有的 Kind 皆如: *, * -> *, * -> * -> * 等等。GHC引入了一个新的 Kind 叫做 # ,用于表示 unboxed types

Haskell98 中, Kind 只在编译器 Kind推导过程 中使用,对程序员来说是不存在的。GHC引入了一个 扩展 ,可以显示指定类型的 Kind ,比如:

Int :: *
Maybe :: * -> *
Maybe Bool :: *
a -> a :: *
[] :: * -> *
(->) :: * -> * -> *

blog comments powered by Disqus

转载请注明出处,收藏或分享这篇文章到: