
El 19 ene 2016, a las 10:24, Alois Cochard
escribió: +1
Agree for consistency, I can also see those instances as being useful in some specific context, even if I agree with Andreas that in general they should be discouraged (especially for newcomers).
Can you give us an example where using e.g. the Functor instance for a 5-tuple would be the correct/best design decision? Tom
On 19 January 2016 at 09:20, Herbert Valerio Riedel
wrote: On 2016-01-18 at 21:10:07 +0100, David Feuer wrote: For some reason I really can't imagine, it seems the only tuple type with a Functor instance is (,) a. I was astonished to find that
fmap (+1) (1,2,3)
doesn't work. Since this is *useful*, and there is *only one way to do it*, I propose we add the following:
instance Functor ((,,) a b) where fmap f (a,b,c) = (a,b,f c) instance Functor ((,,,) a b c) where fmap f (a,b,c,d) = (a,b,c,f d) etc.
As stated elsewhere in this thread already, there is the issue about consistency. Here's a relevant section from the Haskell 2010 report[1]:
6.1.4 Tuples
...
However, every Haskell implementation must support tuples up to size 15, together with the instances for Eq, Ord, Bounded, Read, and Show.
IMO, we either have no `Functor` instances for tuples at all, or we have them for all tuples up to size 15. The current situations of having them defined only for 2-tuples is inconsistent.
Cheers, hvr
[1]: https://www.haskell.org/onlinereport/haskell2010/haskellch6.html#x13-1210006... _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-- Λ\ois http://twitter.com/aloiscochard http://github.com/aloiscochard _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries