| package Deques is | |
| type Deque (<>) is tagged limited private; | |
| function Create return Deque; | |
| procedure Pop (D : access Deque); | |
| type Sequence is limited interface; | |
| type P_Deque is new Deque and Sequence with private; | |
| function Create return P_Deque; | |
| private | |
| type Deque is tagged limited null record; | |
| type P_Deque is new Deque and Sequence with null record; | |
| end Deques; |