Función que genéricamente toma un tipo y devuelve el mismo tipo.

Me cuesta entender por qué el compilador de Scala no está contento con esta definición de función:

<code>def trimNonWordCharacters[T <: Iterable[String]](items: T): T =
     items map { _.replaceAll("\\W", "") }
</code>

Aquí está elREPL salida:

<code>scala> def trimNonWordCharacters[T <: Iterable[String]](items: T): T =
     items map { _.replaceAll("\\W", "") }
<console>:5: error: type mismatch;
 found   : Iterable[java.lang.String]
 required: T
       def trimNonWordCharacters[T <: Iterable[String]](items: T): T = items map { _.replaceAll("\\W", "") }
</code>

El objetivo es pasar en cualquier implementación de un Iterable y obtener el mismo tipo de devolución. es posible?

Respuestas a la pregunta(2)

Su respuesta a la pregunta