Vários limites de tipo inferior no Scala

Eu percebi issotuple.productIterator sempre retorna umIterator[Any] perguntou-se se não é possível definir vários limites inferiores (portanto, pode ser um iterador do super tipo comum mais baixo

Eu tentei e procurei um pouco, mas só encontreiist pergunta para vários limites superiores.

Este é o meu teste sobre como definir o tipo do iterador:

def f[A,B](a:A, b:B) = List(a,b)
// return type is List[Any]

def f[A,B, T >: A "and" T >: B](a:A, b:B) = List[T](a,b)
// doesn't compile, but
//  f(1, true) should give a List[AnyVal] and
//  f("x", "y") a List[String]

Isso é uma limitação da JVM?

Editar Aqui está um exemplo um pouco maior que não parece ser solucionável usando a abordagem IttayD quando T deve ser definido no método:

class Foo[A, B](a: A, b: B) {
  def f[T >: A] = List[T](a) // works
  def g[T >: A "and" T >: B] = List[T](a) // doesn't work
}

questionAnswers(2)

yourAnswerToTheQuestion