generic 
   type I is interface;
   with procedure P (X : I) is abstract;
package gen_interface_p is
end;