>>>>> "D" == Dave Thomas <Dave / PragmaticProgrammer.com> writes:

D> To be fair, just about every time the interpreter now checks for a
D> String, it checks to see if the receiver supports #to_str (via
D> str_to_str). When it's done, the prior check for T_STRING is simply an
D> optimization. So it looks like Ruby is moving towards typing by
D> interface internally.

 I've not understood, it's exist case where it check for T_STRING and not
call #to_str if the previous test is false

Guy Decoux