package Freezing1_Pack is
   type T_Factory is abstract tagged private;
   type I_Interface_Collection is interface;
   Factory : constant T_Factory;
   function Create_Collection
     (Factory : in T_Factory) return I_Interface_Collection'Class;
   type Implem is new I_Interface_Collection with null record;
private
   type T_Factory is tagged null record;
   Factory : constant T_Factory := T_Factory'(null record);
end Freezing1_Pack;