@Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            if (!super.equals(o)) return false;

            IndexedBoundDimension that = (IndexedBoundDimension) o;

            if (!size.equals(that.size)) return false;

            return true;
        }
Returns the dimension resulting from combining two dimensions having the same name but possibly different
types:

[N] + [M] = [ min(N, M) ]
[N] + [] = []
[] + {} = {}
vespajlib/src/main/java/com/yahoo/tensor/TensorType.java