Case clases, coincidencia de patrones y varargs

Digamos que tengo esa jerarquía de clases:

abstract class Expr
case class Var(name: String) extends Expr
case class ExpList(listExp: List[Expr]) extends Expr

¿Sería mejor definir el constructor deExpList Me gusta esto

case class ExpList(listExp: Expr*) extends Expr

Me gustaría saber, ¿cuáles son los inconvenientes / beneficios de cada definición con respecto a la coincidencia de patrones?

Respuestas a la pregunta(6)

Su respuesta a la pregunta