newtype Comparison a
定义于Data.Functor.Contravariant
.
在定义的此模块的版本中contravariant-1.5
,Monoid
实例on Contravariant
定义如下:
instance Monoid (Comparison a) where
mempty = Comparison (\_ _ -> EQ)
mappend (Comparison p) (Comparison q) = Comparison $ mappend p q
Run Code Online (Sandbox Code Playgroud)
Data.Functor.Contravariant
也用基数定义(显然是GHC 8.6.1).在base中,Monoid
实例on Comparison
定义如下:
deriving instance Semigroup (Comparison a)
deriving instance Monoid (Comparison a)
Run Code Online (Sandbox Code Playgroud)
什么使实例Monoid (Comparison a)
能够在base中自动派生?
我应该在哪里查看mempty
和mappend
它的定义?