Figure 4.
Shared types.
------------------------------------------------------------
-- The units X, Y, and P in file XYP2.ada can all declare
-- objects of type Integer_16 because they can share the
-- declaration of that type in STANDARD_INTEGERS.
-- XYP2.ada
with STANDARD_INTEGERS; use STANDARD_INTEGERS;
package X is
procedure Fool_With(N : in out Integer_16);
end X;
with STANDARD_INTEGERS; use STANDARD_INTEGERS;
package Y is
procedure Produce(Z : out Integer_16);
end Y;
with X, Y, STANDARD_INTEGERS; use X, Y, STANDARD_INTEGERS;
procedure P is
W : Integer_16;
begin
Produce(W);
Fool_With(W);
end P;