Proposal: Num instance for tuples

Twan van Laarhoven twanvl at
Thu Oct 18 11:58:17 CEST 2012

Dear list,

One piece of utility code that I find myself writing over and over again is the 
pointwise Num instance for tuples, i.e.

     instance (Num a, Num b) => Num (a,b) where
         fromInteger x = (fromInteger x, fromInteger x)
         (a,b) + (a',b') = (a + a', b + b')
         (a,b) - (a',b') = (a - a', b - b')
         (a,b) * (a',b') = (a * a', b * b')
         negate (a,b) = (negate a, negate b)
         abs (a,b) = (abs a, abs b)
         signum (a,b) = (signum a, signum b)

I therefore propose that this instance be added to the base library. If we do 
that, the equivalent instances for (,,) (,,,) etc. should perhaps also be added, 
as well as instances for other numeric classes such as Fractional and Floating.

Discussion period: 2 weeks, ends 2012-11-01.


More information about the Libraries mailing list