具有两个依赖类型参数的数据类型

时间:2015-08-04 05:36:01

标签: haskell

我有两种类型

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的类型。

我希望我所要求的是有道理的。我还在学习。

0 个答案:

没有答案