package body Stacks is function Size( S: Stack ) return Natural is begin return S.Size; end; procedure Empty( S: in out Stack ) is begin S.Size := 0; end; procedure Push( S: in out Stack; I: in Item ) is begin S.Size := S.Size + 1; S.Data(S.Size) := I; end Push; procedure Pop( S: in out Stack ) is begin S.Size := S.Size - 1; end Pop; function Top( S: Stack ) return Item is begin return S.Data(S.Size); end Top; end Stacks;