Hi!

The documentation for Exception#== says that it returns true if the
receiver and the argument share the same class, message, and backtrace
(where °»share°… means #==).  The implementation, however, checks if the
classes are the same and, if not, try to invoke #message and
#backtrace on the argument.  These results are then compared to the
message and backtrace of the receiver.

Is this a problem with the implementation or the documentation?

The commit message says that °»duck typing equal to make it
transitive°…, but I don°«t understand what°«s meant by°»transitive°… in
this case.  I don°«t think RuntimeError.new('a') should be #== to
StandardError.new('a') or vice versa.