Core concept

sealed trait Shape
case class Circle(r: Double) extends Shape
case class Rect(w: Double, h: Double) extends Shape
Advertisement

How it works

Exhaustiveness check needs sealed. Scala 3 has enum sugar.

Advertisement

Trade-offs + gotchas

Modeling domain types + FP patterns.