My understanding is that "does" will prevent coercion.  In particular,
it is erroneous to say that 'Str does Num' or that 'Num does Str'.

If you say 'Foo does Bar', what this means is that anything Bar can
do, Foo can do, too.  As such, any routine that asks for a Bar can
just as easily be given a Foo.  It doesn't convert the Foo into a Bar;
it simply uses it as is.  As such, the only time coercion might take
place is when the object that you're trying to use _doesn't_ do the
role that's being asked for.

Jonathan "Dataweaver" Lang

Reply via email to