我注意到PolyKinds并且DataKinds以下编译很好:
data Pair a b
data Test = Test
type Test2 = Pair 'Test 'Test
Run Code Online (Sandbox Code Playgroud)
然而:
type Test3 = ('Test, 'Test)
Run Code Online (Sandbox Code Playgroud)
失败,大概(,)是不是多态的,这是有道理的,因为它从它的类型参数中产生值,你不能创建不合适的类型的值*.
是否有一个具有类型多态元组的库(为了节省我重新发明轮子)?
我确实意识到,与真正的元组不同,类型多态元组只存在于类型级别,但这就是我需要的所有目的.
use*_*038 12
如果您已经在使用DataKinds,则应该使用内置元组构造函数的升级版本,而不是类型构造函数:
type Test3 = '( 'Test, 'Test)
Run Code Online (Sandbox Code Playgroud)
这有点好(Test, Test).
注意(和之间必须有空格'; '('Test, 'Test)是语法错误(解析器中必要的边缘情况).
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |