If we're going to add this we should add the symmetric operation for
jam :: Either a a -> a
to Data.Either. (Name taken from Conal's compiling to categories code.)
My own code has called these diag and codiag respectively. I happily yield to a nicer convention.
I have no real preference for whether we do the simple version in Data.Tuple (which has a lot of precedent, as Data.Tuple tends to have lots of little simple combinators that could be done more generally as arrows) or moving it into Control.Arrow.
-Edward