1package Prot6 is 2 3 generic 4 type TD is private; 5 type TI is synchronized interface; 6 package Set_Get is 7 type T is synchronized interface and TI; 8 9 procedure Set (E : in out T; D : TD) is abstract; 10 function Get (E : T) return TD is abstract; 11 end Set_Get; 12 13 type My_Type_Interface is synchronized interface; 14 15 package Set_Get_Integer is 16 new Set_Get (TD => Integer, 17 TI => My_Type_Interface); 18 use Set_Get_Integer; 19 20 protected type My_Type is 21 new Set_Get_Integer.T with 22 23 overriding procedure Set (D : Integer); 24 overriding function Get return Integer; 25 private 26 I : Integer; 27 end My_Type; 28 29 procedure Dummy; 30 31end Prot6; 32