> Actually the original program (the second variant with Standard."and")
> works correctly with the GNAT compiler (but not with ObjectAda).

You're saying GNAT will allow:

>    function "And" (Left, Right: Private_Type) return Private_Type is
>    begin
>      return Standard."And" (Left, Right);
>    end "and";

and I believe you.  But, will it not also allow:

     function "And" (Left, Right: Private_Type)
                     return       Private_Type   renames Standard."And";

?

In any case, since it didn't work for the questioner, he/she must not
be using GNAT.