-- This is the generic implementation for a stack abstract data type.
package body StackPkg is
function IsEmpty (S : Stack) return Boolean is
begin
return S.Top = 0;
end IsEmpty;
...
procedure Push (Item : ItemType; S : in out Stack) is
-- Precondition guarantees that s is not full
begin
S.Top := S.Top + 1;
S.Elements(S.Top) := Item;
end Push;
...
end StackPkg;