▁of ▁programming ▁languages ▁support ▁generic ▁programming ▁through ▁paramet ric ▁polym orphism ▁and ▁generic ▁modules ▁called ▁fun ctors . B oth ▁Standard ▁ML ▁and ▁O C aml ▁provide ▁fun ctors , ▁which ▁are ▁similar ▁to ▁class ▁templates ▁and ▁to ▁Ada ' s ▁generic ▁packages . ▁Sch eme ▁s ynt actic ▁abstra ctions ▁also ▁have ▁a ▁connection ▁to ▁generic ity ▁– ▁these ▁are ▁in ▁fact ▁a ▁su pers et ▁of ▁tem pl ating ▁à ▁la ▁C ++ . ▁ ▁A ▁Ver ilog ▁module ▁may ▁take ▁one ▁or ▁more ▁parameters , ▁to ▁which ▁their ▁actual ▁values ▁are ▁assigned ▁upon ▁the ▁instanti ation ▁of ▁the ▁module . ▁One ▁example ▁is ▁a ▁generic ▁register ▁array ▁where ▁the ▁array ▁width ▁is ▁given ▁via ▁a ▁parameter . ▁Such ▁the ▁array , ▁combined ▁with ▁a ▁generic ▁wire ▁vector , ▁can ▁make ▁a ▁generic ▁buffer ▁or ▁memory ▁module ▁with ▁an ▁arbitrary ▁bit ▁width ▁out ▁of ▁a ▁single ▁module ▁implementation . ▁ ▁V H DL , ▁being ▁derived ▁from ▁Ada , ▁also ▁have ▁generic ▁ability . ▁ ▁See ▁also ▁ ▁Con cept ▁( generic ▁programming ) ▁ ▁Part ial ▁evaluation ▁ ▁Template ▁met ap ro gram ming ▁ ▁Type ▁polym orphism ▁▁ ▁References ▁▁▁ ▁S ources ▁▁▁▁▁▁▁▁▁▁ ▁Further ▁reading ▁▁ ▁Gabriel ▁D os ▁Re is ▁and ▁Ja ak ko ▁J är vi , ▁What ▁is ▁Gener ic ▁Program ming ?, ▁L C SD ▁ 2 0 0 5 . ▁▁▁▁▁ ▁External ▁links ▁ ▁generic - programming . org ▁ ▁Alexander ▁A . ▁Ste pan ov , ▁Collect ed ▁Pap ers ▁of ▁Alexander ▁A