Egy példa többet ér ezer szónál:
case class Name(first: String, last: String)
case class Address(city: String, street: String)
case class Person(name: Name, address: Address)
val p1 = Person(Name("John", "Doe"), Address("London", "Trafalgar square 2"))
val p2 = p1.copy(address = p1.address.copy(street = "Trafalgar square 3"))
ahol
A = p1, A1 = p1.name, A2 = p1.address, A11 = p1.name.first, A12 = p1.name.last, A21 = p1.address.city, A22 = p1.address.street
B = p2, B2 = p2.address, B22 = p2.address.street
p1.name = p2.name, p1.address.city = p2.address.city