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