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;