[Haskell-cafe] Tupling functions

Chris Smith cdsmith at gmail.com
Wed Sep 14 03:44:20 CEST 2011

On Wed, 2011-09-14 at 13:35 +1200, Richard O'Keefe wrote:
> I would like to have
> 	tuple (f1,f2)       x = (f1 x, f2 x)
> 	tuple (f1,f2,f3)    x = (f1 x, f2 x, f3 x)
> 	tuple (f1,f2,f3,f4) x = (f1 x, f2 x, f3 x, f4 x)
> 	...
> I'm aware of Control.Arrow and the &&& combinator, and I can use that
> instead, but f1 &&& f2 &&& f3 doesn't have _exactly_ the type I want.
> What should I do?

There is no polymorphism across tuple structures, so if you absolutely
*must* have n-tuples instead of nested 2-tuples, then you just need to
implement the new functions as needed.  You can't implement that only
once.  Plenty of places in base do this, especially for instances.

Chris Smith

More information about the Haskell-Cafe mailing list