class Eq a where
(==), (/=) :: a -> a -> Bool
x /= y = not (x == y)
x == y = not (x /= y)
deriving instance Eq Bool
Run Code Online (Sandbox Code Playgroud)
我认为它会产生
instance Eq Bool where
True == True = True
False == False = True
Run Code Online (Sandbox Code Playgroud)
但是如何从类似的东西创建一个实例
newtype Sink p = Sink {unSink :: MVar (E.Iteratee (Message p) IO ())}
instance Eq (Sink p) where
?==? = True
Run Code Online (Sandbox Code Playgroud)
我只是使用派生而ghc会弄清楚自己吗?
deriving instance Eq (Sink p)
Run Code Online (Sandbox Code Playgroud)
PS我读过这篇文章,但它超出了我的理解能力 http://www.haskell.org/ghc/docs/7.6.1/html/users_guide/deriving.html
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |