Hi!

I have a type that looks like

```
struct A{X1<:AbstractArray, X2<:AbstractArray}
x1::X1
x2::X2
end
a = A([1, 2], [1 2; 3 4])
b = A([1, 4], [-1 2; -3 4])
```

and I’d like to extend broadcasting such that, for example, `a .= b .- a`

is equivalent to

```
a.x1 .= b.x1 .- a.x1
a.x2 .= b.x2 .- a.x2
```

Is there any example I can follow to do this? I don’t need to combine broadcasting of objects of type `A`

with objects of other types.