package Queue_Pack_Abstract is subtype Element is Character; type Queue_Type is abstract tagged limited private; procedure Enqueue (Item: in Element; Queue: in out Queue_Type) is abstract; procedure Dequeue (Item: out Element; Queue: in out Queue_Type) is abstract; private type Queue_Type is abstract tagged limited null record; end Queue_Pack_Abstract;