我有两种类型
data MyType0 a = MyType0 (Set a) (Set a) [a] a
data MyType1 a = MyType0 (Map a String) (Set a) [a] a
这是一个人为的例子,只是为了表明这些类型因第一个参数而异,并且参数总数很大。
我可以声明一个带有两个参数的类型:
data MyType a b = MyType b (Set a) [a] a
并告诉类型检查器我希望b
成为a
参数化的类型?也就是说,我不希望能够拥有类似MyType (Set Int) (Set String) [String] String
的类型。
我希望我所要求的是有道理的。我还在学习。