The new operation shape.size_eq compares equality of the shape dialect's size
values !shape.size and also supports index types.
LG, modulo I think the error discussion on the shape_eq one wasn't updated there or used here. But we can do those as uniform follow up too.
I don't understand the equality part of errors. The behavior elsewhere is that an error is propagated, here it sounds like you can compare if the size (that was supposed to be there) is equal, and returns true if there are no sizes. I don't think we've defined equality of errors either (e.g., if I have two errors due to being non-broadcastable are they equal? equal only when the operands are the same too?). But it is above already. And we can cycle back on both.