You raise many interesting points to which I will respond in more
detail when I am back home and have a reasonable email system to

But I must quickly respond to one point you raise, in particular:

>The only new feature of OO is the ability to dynamically dispatch
>which is a form of operator overloading.

This is exactly right.  I raised this point in a lecture once, and
the "OO guys" snickered in the background.  They didn't get it!

Then, as many of you may remember, early C++ compilers did not get
NORMAL overloading correct.  They didn't think to include the return
parameter of a function call (the ONLY procedures in C/C++) as part
of the procedure specification, for overloading purposes.  They did
finally fix this.

More later.