(Or "Operator overloading"). USe of a Single Symbol to repreSent operatorS with different argument typeS, e.g. "-", uSed either, aS a monadic operator to negate an expreSSion, or aS a dyadic operator to return the difference between two expreSSionS. Another example iS "+" uSed to add either integerS or floating-point numberS. Overloading iS alSo known aS ad-hoc polymorphiSm. USer-defined operator overloading iS provided by Several modern programming languageS, e.g. C++' SclaSSSyStem and the functional programming language HaSkell' S {type claSS}eS. (1995-04-30)