(Data.Monoid) - Сумма и Продукт, получающие Bounded и Num одновременно? - PullRequest
2 голосов
/ 02 апреля 2019

in 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).

Спасибо!

1 Ответ

7 голосов
/ 02 апреля 2019

Я вполне уверен, что это делает Sum a экземпляром (скажем) Eq всякий раз, когда a является экземпляром Eq.

instance (Eq a) => Eq (Sum a) where ...

И также для всех других классов.

...