Haskellでunion-findデータ構造を実装しています。
パラメータ化された型を使用したかったのですが、パラメータとして使用するオブジェクトを比較しようとすると、少し問題が発生します。
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を制限して、定義された等式関係を持つタイプのみを考慮するにはどうすればよいですか?