class Eq a where
(==), (/=) :: a -> a -> Bool
x /= y = not (x == y)
x == y = not (x /= y)
deriving instance Eq Bool
私はそれが生成すると仮定します
instance Eq Bool where
True == True = True
False == False = True
しかし、次のようなものからインスタンスを作成するにはどうすればよいですか
newtype Sink p = Sink {unSink :: MVar (E.Iteratee (Message p) IO ())}
instance Eq (Sink p) where
?==? = True
派生を使用するだけで、ghc はそれ自体を把握しますか?
deriving instance Eq (Sink p)
PS私はこれを読みましたが、理解する私の能力を超えています http://www.haskell.org/ghc/docs/7.6.1/html/users_guide/deriving.html