1with Ada.Tags.Generic_Dispatching_Constructor;
2
3package Generic_Disp_Pkg is
4   type Iface is interface;
5   function Constructor (I : not null access Integer) return Iface is abstract;
6   function Dispatching_Constructor
7      is new Ada.Tags.Generic_Dispatching_Constructor
8               (T           => Iface,
9                Parameters  => Integer,
10                Constructor => Constructor);
11   type DT is new Iface with null record;
12   overriding
13   function Constructor (I : not null access Integer) return DT;
14end Generic_Disp_Pkg;
15