11
Implement a Stack Type
lDefine a stack to be a list_position. 
lA client who is looking for reusable components would see the specifications for a list position and choose it to act as the basis for creating the type stack. 
lTo Push an entry, say E, call S.Reset, followed by S.Insert(E), where S has been declared to be a stack,.
lA Pop is achieved by first doing a Reset and then a Remove. 
lTo check whether the stack is empty, one can do a Reset and then call Length_of_Rem.
lWhat is equally important is that now a client of the stack will not need to know anything about lists or pointers, because the client will simply declare a stack and make appropriate calls to Push and Pop, leaving the implementation details to the writer of the stack component.
lThis approach results in complete adherence to the principles of information hiding and separation of concerns.