在Real World Haskell的第 321 页上
有这些代码,
...
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
newtype AInt = A { unA::Int }
deriving (Show, Eq, Num)
instance Monoid AInt where
mempty = 0
我的困惑是为什么
mempty = 0
但不是
mempty = A 0
?
我还注意到两者
ghci> 0 :: AInt
和
ghci> A 0 :: AInt
给我同样的回应
A { unA = 0 }
有人能告诉我这两个有什么区别吗?