Case class can extend trait and implement it using its fields.
trait IWork { def itWorks: String } case class Example(itWorks: String) extends IWork It compiles and works fine. Could you please explain, why it can't be compiled?
trait IsAfter { def after(test: Date): Boolean } case class Example2(after: Date => Boolean) extends IsAfter