The package specification, package body, and programs which use the package are separate units.
package GIANT_LETTERS is
procedure DRAW_GIANT_A; -- draw a giant letter "A"
procedure DRAW_GIANT_D; -- draw a giant letter "D"
end GIANT_LETTERS;
with GIANT_LETTERS;
procedure GIANT_ADA is
begin
GIANT_LETTERS.DRAW_GIANT_A;
GIANT_LETTERS.DRAW_GIANT_D;
GIANT_LETTERS.DRAW_GIANT_A;
end;
with GIANT_LETTERS;
use GIANT_LETTERS;
procedure GIANT_DADDA is
begin
DRAW_GIANT_D;
DRAW_GIANT_A;
DRAW_GIANT_D;
DRAW_GIANT_D;
DRAW_GIANT_A;
end;
with TEXT_io;
use TEXT_IO;
package body GIANT_LETTERS is
procedure DRAW_GIANT_A is
begin
-- draw a giant "A"
new_line;
put_line (" * ");
put_line (" * * ");
put_line (" * * ");
put_line (" ******* ");
put_line (" * * ");
put_line ("* *");
new_line;
end DRAW_GIANT_A;
procedure DRAW_GIANT_D is
begin
-- draw a giant "D"
new_line;
put_line (" ******* ");
put_line (" * * ");
put_line (" * * ");
put_line (" * * ");
put_line (" * * ");
put_line (" * * ");
put_line (" ******* ");
new_line;
end DRAW_GIANT_D;
end GIANT_LETTERS;