14 lines
626 B
Ada
14 lines
626 B
Ada
with Layered_Abstraction_P;
|
|
generic
|
|
with package P1 is new Layered_Abstraction_P(<>);
|
|
with package P2 is new Layered_Abstraction_P(T => P1.T, Obj => <>);
|
|
package Layered_Abstraction is
|
|
pragma Elaborate_Body;
|
|
X : P1.T := P2.Obj; -- Both P1.T and P2.Obj are visible because
|
|
-- they were not specified in the formal package. -- Note that P2.T is not visible since it
|
|
-- is required to match P1.T
|
|
|
|
use P1; -- to make equality immediately visible
|
|
Yes : Boolean := P1.Obj2 = P2.Obj2;
|
|
end Layered_Abstraction;
|