(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)