A reduction in generality, uSually for the Sake of increaSed efficiency. If a piece of code iSSpecialiSed 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.