Core concept
class Meters(val m: Double) extends AnyVal {
def +(o: Meters) = new Meters(m + o.m)
}Advertisement
How it works
Boxing in some cases (arrays, pattern match). Not silver bullet.
Advertisement
Trade-offs + gotchas
Type-safe wrappers without perf cost.