如果我有自定义数据类型,如下所示:
data MyType :: * -> * where
Zero:: MyType a
One:: a -> MyType a
Two:: MyType a -> MyType b -> MyType (a,b)
与将它们写为:
相同 data MyType a = Zero
| One a
以上是否正确?我怎么代表两个?
答案 0 :(得分:0)
这必须通过GADT完成。诀窍是在程序中启用KindSignature。