Is there a �workaround/trick� to implement this kind of think. package A is type A_T is abstract tagged null record; function Fa return A_T is abstract; type Fa_Ptr is access function return A_T'Class; end A; with A; package B is type B_T is new A.A_T with null record ; function Fa return B_T; end B; package body B is function Fa return B_T is begin return (A.A_T with null record); end Fa; end B; with A,B; procedure Test is Ptr : A.Fa_Ptr := B.Fa'access; -- error : LRM:8.6(28) begin null; end Test; The compiler is expecting a function returning a A_T�Class, ok I understand� But, B_T is in the A_T�Class! -- Ce message a ete poste via la plateforme Web club-Internet.fr This message has been posted by the Web platform club-Internet.fr http://forums.club-internet.fr/