On Thu, Oct 18, 2012 at 11:58:17AM +0200, Twan van Laarhoven wrote: > 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.
While I see *some* value in being able to perform addition, etc. on tuples, I still think that e.g. something like fst (2 :: Point) can easily lead to code obfuscation. For that reason, -1. Cheers, Simon _______________________________________________ Cvs-ghc mailing list Cvs-ghc@haskell.org http://www.haskell.org/mailman/listinfo/cvs-ghc