Proposal: Add &&& and *** to Data.Tuple

Jon Fairbairn jon.fairbairn at
Fri Oct 19 05:43:21 EDT 2007

"Yitzchak Gale" <gale at> writes:

> May I suggest an alternative?
> Write a nice wiki article explaining that you do not
> need to understand arrows to use these functions.
> Show what the types of the functions are when
> used in the naive way, and give some nice examples.
> Explain anything else that a beginner might need
> to know when using them in this way - like,
> how to understand weird error messages you
> might get in GHC or Hugs. Or when it might
> be necessary to specify a type signature when
> otherwise you wouldn't have needed to.
> Put a link to the wiki article in the Haddock docs
> for Control.Arrow, and in various tutorials. And we are
> done.

In a sense, yes. I'd be most happy if fmap was called map
and so on and people just learned to cope. But there are
educators with strong arguments against that, and this
particular topic is an instance of the same thing, so some
wider solution is needed.

I suppose what I'm saying is that I'd prefer that the thing
were not done until we have the wider solution, but if
'twere done 'twere well 'twere done by re-exporting the same
names from Data.Tuple /imported from Control.Arrow/ (and
requiring sophisticated people to use "hiding ((***),(&&&))"
if they ever need to import Data.Tuple as when using

Jón Fairbairn                                 Jon.Fairbairn at

More information about the Libraries mailing list