@Override
    public int hashCode() {
        return Objects.hash(dimensions, valueType);
    }
Returns the dimensionwise generalization of this and the given type, or empty if no generalization exists.
A dimensionwise generalization exists if the two tensors share the same dimensions, and each dimension
is compatible.
For example, the dimensionwise generalization of tensor(x[],y[5]) and tensor(x[5],y[]) is tensor(x[],y[])
vespajlib/src/main/java/com/yahoo/tensor/TensorType.java