So today I got a perfect example of why operator overloading is such a nightmare.
What do you think this piece of Ruby means?
a << @b
The short answer is that it means nada. It will depend on both a and b and even if you learn what one instance of the operator means it will serve as no guide to identical operators for different types. This one operator resulted in a bug every time it was used and I don’t think it represents any value over a more verbose method call.