Cac*_*tus 9 haskell data-kinds
给定ADT之类的
data K = A | B Bool
Run Code Online (Sandbox Code Playgroud)
该DataKinds扩展可以让我们把它提升到种类和类型/类型构造
K :: BOX
'A :: K
'B :: 'Bool -> K
Run Code Online (Sandbox Code Playgroud)
有没有办法添加一个构造函数来K提升到类型构造函数
'C :: * -> K
Run Code Online (Sandbox Code Playgroud)
?
正如Conor所说,这不是直接可能的.但是,您可以定义
data K a = ... | C a
Run Code Online (Sandbox Code Playgroud)
然后这促进了
C :: a -> K a
Run Code Online (Sandbox Code Playgroud)
如果您随后使用K *,您可以实现您想要的.
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |