[net.lang.ada] overloding the equals operator

RRACINE@ADA20.ISI.EDU (Roger Racine) (09/26/86)

Could someone please explain WHY one needs to use a derived type
to overload the "=" operator? In particular, why does this not work?

Instead of:

function "="(left, right : my_type) return boolean;

I tried :

function "="(first, second : my_type) return boolean;

I thought that when the access type was declared, an implicit declaration
of the function "="(left, right : my_type) return boolean would occur.
Then by using named notation inside the body of "=" I would be able to
use the implicit "=".

It does not work. Is this due to some rule about scope? Or are the two 
compilers I checked it on wrong?
-------