bbense wrote
.....
> > If
> >you believe that it is, why don't you believe that the following code
> >shows that ruby has "typed arguments"
> >
> >
> >   "foo".reverse
> >   [1,2,3].reverse
> >
> >Why do you feel differently about the receiver than about additional
> >arguments? Multiple dispatch just has more receivers...
>
> - - Sorry, I don't follow this at all. To me it demonstrates exactly
> the point I was trying to make. All I need to know is whether you
> can do reverse or not.

What is the difference of sending an ``add'' request
 (don't worry Matz hates this notation)

   <(2,4)>.add

It seem to me that all I need to know is how to add
2  and 3?


> >BTW, many people would say (and have said) that Ruby is strictly (or
> >strongly) typed. It's just not statically typed.
> >
>
> - - Let's put it another way. Multiple dispatch violates the
> principal of object independence. Why does your class need
> to know the internals of my objects? It encourages the

This is pretty much a circular argument.  It is  kind
of like  -  not adhering to        ``the principle of single dispatch''
violates - surprise surprise;-)   ``the principle of single dispatch''.

> creation of fragile code that will fail every time
> the external environment changes. You're coupling your
> implementation to the details of specific objects.
> While ruby can't stop you from writing fragile code, it
> can at least not encourage it.

The coerce framework (a poor mans multiple dispatch)
of the Numeric class hierarchy is imo much more fragile
than almost any incarnation of multiple dispatch.

/Christoph