有没有办法以这样的方式使用Data.Map,值的类型取决于键的类型?我需要确保我永远不会在地图中插入错误的类型值。
例如:
假设我有类型KeyType a
和ValType a
那么Map应该具有类似于
Map (KeyType a) (ValType a)
但这显然不起作用,因为a
没有约束。
答案 0 :(得分:0)
您可以使用类型同义词绑定a
,以使其KeyType
和ValType
的内容必须相同:
type MapFor a = Map (KeyType a) (ValType a)
现在,您可以在使用MapFor a
的任何地方使用a
(针对某些特定Map (KeyType a) (ValType a)
)。