我在 Haskell 中实现了一个联合查找数据结构。
我想使用参数化类型,但是当我尝试比较用作参数的对象时遇到了一个小问题。
data UnionFindElement valueType =
RootElement valueType |
ElementWithParent valueType (UnionFindElement valueType)
holds :: UnionFindElement valueType -> valueType -> Bool
holds (RootElement v) value = v == value
似乎没有定义平等。
No instance for (Eq valueType)
arising from a use of `=='
In the expression: v == value
如何限制 valueType 仅考虑具有已定义相等关系的类型?