1package Deques is 2 3 type Deque (<>) is tagged limited private; 4 function Create return Deque; 5 procedure Pop (D : access Deque); 6 7 type Sequence is limited interface; 8 type P_Deque is new Deque and Sequence with private; 9 function Create return P_Deque; 10 11private 12 type Deque is tagged limited null record; 13 type P_Deque is new Deque and Sequence with null record; 14end Deques; 15