class Eq a where
(==), (/=) :: a -> a -> Bool
x /= y = not (x == y)
x == y = not (x /= y)
deriving instance Eq Bool
我認爲它會產生獲得實例式(沉P)
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
你試過了嗎? – huon
不,我無法想象它會工作:) –
測試'newtype Sink p = Sink {unSink :: MVar(E.Iteratee(Message p)IO())}派生(Eq)'工作,因爲每個套接字都有一個不同的MVar –