anchor.diff:  unit listlib;
   interface
   	type
  -		list_link_pointer = ^list_link;
  -
  -		list_link = object
  +		list_link = class
   		public
   			constructor create(data: longInt);
   			
  -			procedure setNext(link: list_link_pointer);
  -			procedure setPrev(link: list_link_pointer);
  +			procedure setNext(link: list_link);
  +			procedure setPrev(link: list_link);
   
   		private
   			m_data: longInt;
  -			m_next: list_link_pointer;
  -			m_prev: list_link_pointer;
  +			m_next: list_link;
  +			m_prev: list_link;
   		end;
   
   		list_iterator = class
   		public
  -			constructor create(l: list_link_pointer);
  +			constructor create(l: list_link);
   			
   			procedure next();
   			procedure prev();
  
positive.code: 			function get_data(): longInt;
  			
  			function equal(other: list_iterator): boolean;
  			function getLink(): list_link_pointer;
  
  		private
  			m_link: list_link_pointer;
  		end;
  
  		list = class
  
negative.code: 		equal := m_link = other.m_link;
  	end;
  
  	function list_iterator.getLink(): list_link;
  	begin
  		getLink := m_link;
  	end;
  
  	constructor list.create();
  	var
  		link: list_link;
  	begin
  		link := list_link.create(0);
  		m_begin := list_iterator.create(link);
  		m_end := list_iterator.create(link);
  	end;
  
  	destructor list.destroy();
  	begin
  		while not empty() do
  			pop_back();
  		m_end.getLink().destroy();
  		m_begin.destroy();
  		m_end.destroy();
  	end;
  