1
私はX
というコンテナ型を持っています。 X
以上の異種リストが必要なので、そのコンストラクタはあるタイプの変数a
に存在する型に存在します。しかし、私はそれがEq
タイプのクラスのインスタンスであることを望みます。ハックなソリューションは次のようになります。GADT、未定義の型とインスタンスのイコール
{-# LANGUAGE GADTs #-}
data X where X :: (Eq a, Show a) => a -> X
instance Eq X where
X x == X y = show x == show y
この問題の最も単純な(クリーンな)解決策は何ですか?
(。彼らは同じ型を持っていない場合X
sが等しくない)