1 with Layered_Abstraction_P
;
3 with package P1
is new Layered_Abstraction_P
(<>);
4 with package P2
is new Layered_Abstraction_P
(T
=> P1
.T
, Obj
=> <>);
5 package Layered_Abstraction
is
7 X
: P1
.T
:= P2
.Obj
; -- Both P1.T and P2.Obj are visible because
8 -- they were not specified in the formal package. -- Note that P2.T is not visible since it
9 -- is required to match P1.T
11 use P1
; -- to make equality immediately visible
12 Yes
: Boolean := P1
.Obj2
= P2
.Obj2
;
13 end Layered_Abstraction
;