1. -- 
  2. -- Uwe R. Zimmer, Australia, 2013 
  3. -- 
  4.  
  5. generic 
  6.  
  7.    type Element is private; 
  8.  
  9. package Queue_Pack_Abstract_Unsync is 
  10.  
  11.    type Queue_Type is limited interface; 
  12. --     type Queue_Type is abstract tagged limited null record; 
  13. --     type Queue_Type is abstract tagged limited private; 
  14.  
  15.    procedure Enqueue (Item :     Element; Queue : in out Queue_Type) is abstract; 
  16.    procedure Dequeue (Item : out Element; Queue : in out Queue_Type) is abstract; 
  17.  
  18. --  private 
  19. --     type Queue_Type is abstract tagged limited null record; 
  20. end Queue_Pack_Abstract_Unsync;