var address: MyAddress {
  didSet {
     resetAllFields()
  }
}

address.street = “123 Main St”

Has very different behavior if MyAddress is a value type than if it’s a reference type. 🤬