Я пытаюсь создать классы case, как описано в эта статья
sealed abstract case class Exp()
case class Literal(x:Int) extends Exp
case class Add(a:Exp, b:Exp) extends Exp
case class Sub(a:Exp,b:Exp) extends Exp
Однако в IntelliJ появляется следующая ошибка. Я понимаю, почему это запрещено (Почему наследование от случая к случаю запрещено в Scala). Какой здесь альтернативный путь?
Error:(2, 13) case class Literal has case ancestor A$A34.A$A34.Exp, but case-to-case inheritance is prohibited. To overcome this limitation, use extractors to pattern match on non-leaf nodes.
case class Literal(x:Int) extends Exp
^