package body Layered_Abstraction is Z : 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_Again : Boolean := P1.Obj2 = P2.Obj2; end Layered_Abstraction;