struct Iterator { ~Vector v, int pos } /; method Iterator /; init(~Vector v) self.v = v self.pos = 0 ;/ /; get [~void] return self.v`.get(self.pos) ;/ /; next /; if (self.pos + 1 < self.v`.count) self.pos++ ;/ ;/ /; at_end [bool] return (self.pos + 1) !< (self.v`.count) ;/ /; prev /; if (self.pos > 0) self.pos-- ;/ ;/ /; get_pos [int] return self.pos ;/ /; set_pos (int p) self.pos = p ;/ ;/