Re: Proposal: Num instance for tuples

Simon Hengel <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.ghc,gmane.comp.lang.haskell.libraries
Message-ID <20121018102512.GA13634@x200>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.