@Override
  public @NotNull Iterator<Attribute> iterator() {
    if (isEmpty()) return Collections.emptyIterator();
    return new Iterator<Attribute>() {
      int i;

      @Override
      public boolean hasNext() {
        return i < size();
      }

      @Override
      public Attribute next() {
        return get(i++);
      }

      @Override
      public void remove() {
        throw ImmutableElement.immutableError(ImmutableSameTypeAttributeList.this);
      }
    };
  }
@Override
  public @NotNull Iterator<Attribute> iterator()