Haskell Map键的类型确定值的类型

时间:2017-05-09 05:26:42

标签: haskell

有没有办法以这样的方式使用Data.Map,值的类型取决于键的类型?我需要确保我永远不会在地图中插入错误的类型值。

例如: 假设我有类型KeyType aValType a 那么Map应该具有类似于

的类型

Map (KeyType a) (ValType a)

但这显然不起作用,因为a没有约束。

1 个答案:

答案 0 :(得分:0)

您可以使用类型同义词绑定a,以使其KeyTypeValType的内容必须相同:

type MapFor a = Map (KeyType a) (ValType a)

现在,您可以在使用MapFor a的任何地方使用a(针对某些特定Map (KeyType a) (ValType a))。