Como se menciona en uno de los comentarios del OP, esta es la tabla que explica cómo se compara Scala para el soporte de programación genérico. Enlace a la fuente pdf
Más adelante, se proporciona el siguiente resumen:
Scala
Usando el patrón CONCEPT podemos modelar conceptos de tipos múltiples, restricciones múltiples y soportar el modelado retroactivo. Además, el soporte de Scala para implicits significa que los inconvenientes de las soluciones Java y C # en términos de sobrecarga adicional, no se aplican a Scala. Por lo tanto, Scala obtiene buenos resultados tanto en la deducción implícita de argumentos como en los criterios de modelado retroactivo. La Sección 6 muestra que los tipos asociados se admiten en Scala a través de miembros de tipo y tipos de métodos dependientes, y los miembros de tipo también se pueden usar como alias de tipo.
Como se muestra en la Sección 3, Scala admite modelos de ámbito léxico. Además, la verificación de tipo es totalmente modular. Implicits superpuestos priorizados brindan cierto soporte para la sobrecarga basada en conceptos, como lo ilustra zipWithNejemplo en la Sección 6.5. Sin embargo, los modelos superpuestos tienen que estructurarse utilizando una jerarquía de subtipificación, que puede no ser siempre deseable. Por lo tanto, el puntaje para esta característica solo es suficiente. Finalmente, Scala tiene soporte completo para funciones de primera clase y también soporta restricciones de igualdad.
En resumen, Scala resulta ser un lenguaje con excelente soporte para funciones de programación genéricas, logrando tarifas al mismo nivel, o incluso un poco mejor, que G (que fue especialmente diseñado como un lenguaje para programación genérica en general) o Haskell ( que ha sido reconocido tiene un muy buen soporte para la programación genérica).
Y luego en el resumen:
Los miembros de tipo y los tipos de métodos dependientes agregan potencia adicional al lenguaje y una combinación de los dos mecanismos permite que se expresen los tipos asociados. En combinación con implicidades, los miembros de tipo y los tipos de métodos dependientes hacen de Scala un lenguaje listo para la programación genérica en general.