|  | Definition: |  | A reduction in generality, usually for the sake of increased efficiency.  If a piece of code is specialised for certain values of certain variables (usually function arguments), this is known as "partial evaluation".  In a language with overloading (e.g. haskell), an overloaded function might be specialised to a non-overloaded instance at compile-time if the types of its arguments are known. |