trait, class, object, enum – I have always wondered why “case class” would be the only double worded qualifier. Would it make sense to consider replacing “case class” definitions by “case”:
case Class1
case Class2(…) extends Class3
That would also align the syntax with Dotty’s new enums:
enum Color
{
case Red
case Blue
case Green
}
By extension we could allow a chained construct as in enums:
I do not think it makes sense. Every case class is, above all, a class. In addition, it provides services that are related to structural equality and pattern matching (hence the case modifier). So it is a class, with additional case-related services. That deserves the two words.