It would be useful to define +, - etc on `X(1)`. A use case is when these are used as indices: things like `newidx = dimidx .+ (X(1),Y(1))` would work.