== 1. A record does not copy the list you give it ==
  leaky.items()         = [pen, book, laptop]
  after leaky.items().add("phone"), basket = [pen, book, laptop, phone]

== 2. List.copyOf in the compact constructor ==
  safe.items()          = [pen, book]
  safe.items().add(...) -> UnsupportedOperationException

== 3. 'Changing' a record means building a new one ==
  safe   = SafeOrder[id=A-2, items=[pen, book]]
  bigger = SafeOrder[id=A-2, items=[pen, book, charger]]

== 4. A mutable Date component ==
  LeakyEvent.when().getTime() after caller mutates d1 = 86400000
  SafeEvent.when().getTime()  after both mutations    = 0
