public Cons removeDeletedMembers() {
    { Cons self = this;

      { Cons cursor = self;
        Cons trailer = null;

        while (!(cursor == Stella.NIL)) {
          if (cursor.value.deletedP() &&
              (trailer != null)) {
            {
              trailer.rest = cursor.rest;
              cursor = trailer.rest;
            }
          }
          else {
            {
              trailer = cursor;
              cursor = cursor.rest;
            }
          }
        }
        if ((!(self == Stella.NIL)) &&
            self.value.deletedP()) {
          return (self.rest);
        }
        return (self);
      }
    }
  }