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