Quais são as desvantagens de declarar classes de caso Scala?

Se você estiver escrevendo um código que usa muitas estruturas de dados imutáveis e bonitas, as classes de casos parecem ser uma dádiva de Deus, oferecendo a você o seguinte gratuitamente, com apenas uma palavra-chave:

Tudo imutável por padrãoGetters definidos automaticamenteImplementação decente de toString ()Equals () e hashCode () compatíveisObjeto complementar com o método unapply () para correspondência

Mas quais são as desvantagens de definir uma estrutura de dados imutável como uma classe de caso?

Que restrições ele impõe à classe ou a seus clientes?

Existem situações em que você deve preferir uma aula que não seja o caso?

questionAnswers(5)

yourAnswerToTheQuestion