Hello Justin, Wednesday, September 25, 2002, 2:02:37 PM, you wrote: JJ> 1. It would have to be optional. Each parameter could be either a var (as JJ> it is now) or a class and var pair to specify specialization. not class, but any expression - we can use === to test JJ> 2. Making it efficient could be difficult. It could potentially affect the JJ> speed of all method lookups because a method call would have to get the JJ> types of the arguments and try and find a matching method. If it can't find JJ> one it would presumably use the totally generic case. no. if the method definition don't use type specifiers, this method is not overloaded. as with overload.rb JJ> 3. Bignum and Fixnum. Conversion between these are automatic. How does JJ> this affect specialization? def a_method( Integer a) end def b_method( Numeric a) end >> now i can use overload library and write code such as: >> >> > def do_overload(i, s, f) >> > end >> > overload(:do_overload, Fixnum, String, Float) >> > >> > def do_overload(s, i, *a) >> > end >> > overload(:do_overload, String, Fixnum) >> >> all that i want - just the same (terrible, you are right) semantics >> with a bit more clear syntax and including this feature into ruby >> distribution: >> >> > def do_overload(Fixnum i, String s, Float f) >> > end >> > def do_overload(String s, Fixnum i, *a) >> > end >> >> although this don't correspond to dynamic spirit of language, in real >> world this adds lot of points to ease of use and even robustness of >> language -- Best regards, Bulat mailto:bulatz / integ.ru