public AbstractCollection remove(Stella_Object value) {
    { VectorSequence self = this;

      { edu.isi.stella.Stella_Object[] array = self.theArray;
        int firstshiftoffset = -1;
        int lastshiftoffset = self.sequenceLength - 1;

        { int i = Stella.NULL_INTEGER;
          int iter000 = 0;
          int upperBound000 = lastshiftoffset;
          boolean unboundedP000 = upperBound000 == Stella.NULL_INTEGER;

          loop000 : for (;unboundedP000 ||
                    (iter000 <= upperBound000); iter000 = iter000 + 1) {
            i = iter000;
            if (Stella_Object.eqlP(array[i], value)) {
              firstshiftoffset = i + 1;
              break loop000;
            }
          }
        }
        if (firstshiftoffset == -1) {
          return (self);
        }
        if (firstshiftoffset <= lastshiftoffset) {
          { int j = Stella.NULL_INTEGER;
            int iter001 = firstshiftoffset;
            int upperBound001 = lastshiftoffset;
            boolean unboundedP001 = upperBound001 == Stella.NULL_INTEGER;

            for (;unboundedP001 ||
                      (iter001 <= upperBound001); iter001 = iter001 + 1) {
              j = iter001;
              array[(j - 1)] = (array[j]);
            }
          }
        }
        array[lastshiftoffset] = null;
        self.sequenceLength = lastshiftoffset;
        return (self);
      }
    }
  }