(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++' s class sYstem and the functional programming language Haskell' s {tYpe class}es. (1995-04-30)