Core concept
sealed trait Shape
case class Circle(r: Double) extends Shape
case class Rect(w: Double, h: Double) extends ShapeAdvertisement
How it works
Exhaustiveness check needs sealed. Scala 3 has enum sugar.
Advertisement
Trade-offs + gotchas
Modeling domain types + FP patterns.