the implicits for TupleConverter and TupleSetter can lead to subtle bugs at times. i think its because of the low priority defaults for any generic type.
for example i ran into issue where an implicit wasn't propagated by mistake, and it seemed to fall back on an incorrect generic choice without any warning. it boils down to this:
scala> implicitly[TupleSetter[(String, String)]].apply(("ha", "ba")).size
res9: Int = 2
scala> def test[A] = implicitly[TupleSetter[A]]
test: [A]=> com.twitter.scalding.TupleSetter[A]
scala> test[(String, String)].apply(("ha", "ba")).size
res10: Int = 1
i wish definition of test had failed.