1with Ada.Containers.Vectors; 2with Ada.Containers; 3with Ada.Finalization; 4 5package Tagged1 is 6 7 generic 8 type Target_Type (<>) is limited private; 9 package A is 10 type Smart_Pointer_Type is private; 11 private 12 type Smart_Pointer_Type 13 is new Ada.Finalization.Controlled with null record; 14 end; 15 16 generic 17 type Target_Type (<>) is limited private; 18 package SP is 19 type Smart_Pointer_Type is private; 20 private 21 package S is new A (Integer); 22 type Smart_Pointer_Type is new S.Smart_Pointer_Type; 23 end; 24 25 type Root_Type is tagged record 26 Orders : Integer; 27 end record; 28 package Smarts is new SP 29 (Target_Type => Root_Type'Class); 30 31 type Fat_Reference_Type is new Smarts.Smart_Pointer_Type; 32 type EST is record 33 Orders : Fat_Reference_Type; 34 end record; 35 36 package V is new Ada.Containers.Vectors (Positive, EST); 37 38 procedure Dummy; 39end; 40