Proposal: Num instance for tuples

Dan Burton danburton.email at gmail.com
Thu Oct 18 18:05:37 CEST 2012


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

-1 from me.

While this is a sensible instance, it has the potential to cause great
confusion. It will make bug hunting that much harder when you accidentally
put a numeric literal where a tuple of distinct numbers is supposed to be.

Put the instance in its own package, and those that want it can just
install the package.

-- Dan Burton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20121018/cac5cb19/attachment-0001.htm>


More information about the Libraries mailing list