在Data.Monoid
中:
newtype Sum a = Sum { getSum :: a }
deriving ( Eq -- ^ @since 2.01
, Ord -- ^ @since 2.01
, Read -- ^ @since 2.01
, Show -- ^ @since 2.01
, Bounded -- ^ @since 2.01
, Generic -- ^ @since 4.7.0.0
, Generic1 -- ^ @since 4.7.0.0
, Num -- ^ @since 4.7.0.0
)
我不明白如何用
Num
,Bounded
等在Sum
上导出Integer
和Float
,这些自然不是Bounded
(对于Product
包装器来说也是一样)。谢谢!
最佳答案
我很确定,只要Sum a
是Eq
的实例,这就会使a
(例如)Eq
的实例。
instance (Eq a) => Eq (Sum a) where ...
对于其他所有类也是如此。