Because TupleConverter cannot be covariant, we need to jump through this hoop.
Because TupleConverter cannot be covariant, we need to jump through this hoop. A typical implementation might be: (implicit conv: TupleConverter[T]) and then:
override def converter[U >: T] = TupleConverter.asSuperConverter[T, U](conv)