Robert;
> I'll change your "probably be" to "": it WOULD be preferable to call the
> most specific version of an overloaded function. ChucK's class system has
> single, straight-line inheritance, so the "most specific" is always well
> defined.
You are probably ;-) right, I was hesitant to make a strong statement here as I wasn't sure this would hold true in all cases. There might be exceptions though now that I have thought about it for a while I have to admit I still haven't found any. I'm hesitant to make strong claims in fields like this because the situation might stretch to near infinite complexity and unforeseen possibilities may pop up.
> The current scheme -- using the (lexically) first function
> definition -- seems fraught with astonishment.
I don't think the situation is terrible; it doesn't crash, correct behaviour can be had and the results seem deterministic so far. It can also be improved without breaking old code in nearly all cases. My main issue is the lack of documentation. The manual just notes;
overloading
Overloading a function allows functions with the same name to be defined with different arguments.
The function must be written in separate instances to handle the input, and the return type must
agree.