(Data.Monoid) - Sum 和 Product 同时导出 Bounded 和 Num?
(Data.Monoid) - Sum and Product deriving Bounded and Num at the same time?
在 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
)
我不明白你怎么能用 Integer
、Float
等在 Sum
上推导出 Num
和 Bounded
...不是 Bounded
(Product
包装器也是如此)。
谢谢!
我相当确定只要 a
是 Eq
的实例,这就会使 Sum a
成为(比如说)Eq
的实例。
instance (Eq a) => Eq (Sum a) where ...
其他所有 类。
在 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
)
我不明白你怎么能用 Integer
、Float
等在 Sum
上推导出 Num
和 Bounded
...不是 Bounded
(Product
包装器也是如此)。
谢谢!
我相当确定只要 a
是 Eq
的实例,这就会使 Sum a
成为(比如说)Eq
的实例。
instance (Eq a) => Eq (Sum a) where ...
其他所有 类。