Retornando o mesmo tipo de coleção, com parâmetros diferentes

Daniel Sobral mostrou como podemos criar um método que retorna o mesmo tipo de coleção no qual foi chamado em sua resposta a esta pergunta:etornando o tipo de coleção original no método genéri

possível fazer o mesmo para um método que usa um mapeamento para retornar uma versão com parâmetros diferentes do mesmo tipo de coleçã

Por exempl

def foo[A](xs: GenTraversable[A]) = xs map (_.toString)

foo( List(1, 2, 3) ) retornares: GenTraversable[String] = List(1, 2, 3)

Pode ser adaptado para que

foo( Set(1, 2, 3) ) retorna umSet[String]

foo( List(1, 2, 3) ) retorna umList[String]

foo( Vector(1, 2, 3) ) retorna umVector[String]

questionAnswers(1)

yourAnswerToTheQuestion