#, ▁Del phi , ▁E iff el , ▁F #, ▁Java , ▁R ust , ▁Swift , ▁Type Script ▁and ▁Visual ▁Basic ▁. NET . ▁They ▁are ▁known ▁as ▁paramet ric ▁polym orphism ▁in ▁ML , ▁Scala , ▁Julia , ▁and ▁H askell ▁( the ▁H askell ▁community ▁also ▁uses ▁the ▁term ▁" generic " ▁for ▁a ▁related ▁but ▁somewhat ▁different ▁concept ); ▁templates ▁in ▁C ++ ▁and ▁D ; ▁and ▁parameter ized ▁types ▁in ▁the ▁influ ential ▁ 1 9 9 4 ▁book ▁Design ▁Pattern s . ▁▁▁ ▁The ▁term ▁" generic ▁programming " ▁was ▁originally ▁co ined ▁by ▁David ▁Mus ser ▁and ▁Alexander ▁Ste pan ov ▁in ▁a ▁more ▁specific ▁sense ▁than ▁the ▁above , ▁to ▁describe ▁a ▁programming ▁parad ig m ▁where by ▁fundamental ▁requirements ▁on ▁types ▁are ▁abstract ed ▁from ▁across ▁concrete ▁examples ▁of ▁algorithms ▁and ▁data ▁structures ▁and ▁formal ized ▁as ▁concepts , ▁with ▁generic ▁functions ▁implemented ▁in ▁terms ▁of ▁these ▁concepts , ▁typically ▁using ▁language ▁generic ity ▁mechan isms ▁as ▁described ▁above . ▁ ▁Ste pan ov – Mus ser ▁and ▁other ▁generic ▁programming ▁parad ig ms ▁▁ ▁Gener ic ▁programming ▁is ▁defined ▁in ▁ ▁as ▁follows , ▁ ▁Gener ic ▁programming ▁parad ig m ▁is ▁an ▁approach ▁to ▁software ▁decomposition ▁where by ▁fundamental ▁requirements ▁on ▁types ▁are ▁abstract ed ▁from ▁across ▁concrete ▁examples ▁of ▁algorithms ▁and ▁data ▁structures ▁and ▁formal ized ▁as ▁concepts , ▁analog ously ▁to ▁the ▁abstra ction ▁of ▁algebraic ▁theories ▁in ▁abstract ▁algebra . ▁ ▁Early ▁examples ▁of ▁this ▁programming ▁approach ▁were ▁implemented