【发布时间】:2013-12-31 18:11:53
【问题描述】:
我试图找到对 DataKinds 扩展的解释,这对我来说是有意义的,因为我只阅读了Learn You a Haskell。有没有一个标准的资源对我来说是有意义的?
编辑:例如documentation 说
使用 -XDataKinds,GHC 会自动提升每个合适的数据类型 是一种类型,它的(值)构造函数是类型构造函数。 以下类型
并举例说明
data Nat = Ze | Su Nat
产生以下种类和类型构造函数:
Nat :: BOX
Ze :: Nat
Su :: Nat -> Nat
我不明白这一点。虽然我不明白 BOX 是什么意思,但声明 Ze :: Nat 和 Su :: Nat -> Nat 似乎说明了 Ze 和 Su 是正常的数据构造函数的情况,正如您期望在 ghci 中看到的那样
Prelude> :t Su
Su :: Nat -> Nat
【问题讨论】:
标签: haskell types algebraic-data-types data-kinds