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;