我试图找到一个对DataKinds扩展的解释,这对我来说只是读过Learn You a Haskell才有意义.是否有一个标准的来源,对我来说,我学到的东西很少?
编辑:例如文档说
使用-XDataKinds,GHC会自动将每个合适的数据类型提升为一种类型,并将其(值)构造函数作为类型构造函数.以下类型
并举例说明
data Nat = Ze | Su Nat
Run Code Online (Sandbox Code Playgroud)
产生以下种类和类型构造函数:
Nat :: BOX
Ze :: Nat
Su :: Nat -> Nat
Run Code Online (Sandbox Code Playgroud)
我没有明白这一点.虽然我不明白是什么BOX意思,陈述Ze :: Nat和Su :: Nat -> Nat似乎说明的是,通常已经是泽和苏都是正常的数据构造完全一样,你希望看到与ghci的情况
Prelude> :t Su
Su :: Nat -> Nat
Run Code Online (Sandbox Code Playgroud)