anchor.diff:  	end;
   
   	function list.get_begin(): list_iterator;
  -	begin
  -		get_begin := m_begin;
  +	var
  +		it: list_iterator;
  +	begin
  +		it := list_iterator.create(m_begin.m_link);
  +		get_begin := it;
   	end;
   
   	function list.get_end(): list_iterator;
  -	begin
  -		get_end := m_end;
  +	var
  +		it: list_iterator;
  +	begin
  +		it := list_iterator.create(m_end.m_link);
  +		get_end := it;
   	end;
   
   	procedure list.push_back(data: longInt);
   	begin
  -		insert(m_end, data);
  +		insert(get_end(), data);
   	end;
   
   	function list.pop_back(): longInt;
  
positive.code: 
  		if p.equal(m_begin) then
  		begin
  			writeln('begin');
  			nextLink := p.getLink();
  			link^.setNext(nextLink);
  			nextLink^.setPrev(link);
  		end
  		else
  		begin
  			writeln('no begin');
  			nextLink := p.getLink();
  			p.prev();
  			prevLink := p.getLink();
  			link^.setNext(nextLink);
  			nextLink^.setPrev(link);
  			link^.setPrev(prevLink);
  			prevLink^.setNext(link);
  		end;
  	end;
  
  	procedure list.erase(p: list_iterator);
  	var
  		nextLink, prevLink: pLink;
  	begin
  		if p.equal(m_end) then
  			exit();
  
  		if p.equal(m_begin) then
  		begin
  			p.next();
  			nextLink := p.getLink();
  			dispose(m_begin.getLink());
  			m_begin := list_iterator.create(nextLink);
  		end
  		else
  		begin
  			p.next();
  			nextLink := p.getLink();
  			p.prev();
  			p.prev();
  			prevLink := p.getLink();
  			p.next();
  			dispose(p.getLink());
  			nextLink^.setPrev(prevLink);
  			prevLink^.setNext(nextLink);
  		end;
  
negative.code: 		it: list_iterator;
  		tmp: longInt;
  	begin
  		it := get_end();
  		it.prev();
  		tmp := it.get_data();
  		erase(it);
  