我注意到使用 PolyKinds
和 DataKinds
,以下代码可以顺利编译:
data Pair a b
data Test = Test
type Test2 = Pair 'Test 'Test
然而:type Test3 = ('Test, 'Test)
很可能由于 (,)
不是种类多态的原因导致失败,这是有道理的,因为它根据其类型参数构造值,而不能构造不属于类别 *
的类型的值。
是否有一个具有种类多态元组的库(可以节省我的时间)?
我确实意识到,与真实元组不同,种类多态元组仅存在于类型级别,但这对于我的目的已经足够了。
Fst
和Snd
类型族非常有用,而且使用看起来很傻的约束条件x ~ '(Fst x, Snd x)
也很重要。 - dfeuer