▁of ▁type ▁system ▁be ▁made ▁independent ▁of ▁choice ▁of ▁language ; ▁that ▁a ▁type ▁system ▁should ▁be ▁a ▁module ▁that ▁can ▁be ▁plug ged ▁into ▁a ▁language ▁as ▁needed . ▁He ▁bel ieves ▁this ▁is ▁advantage ous , ▁because ▁what ▁he ▁calls ▁mand atory ▁type ▁systems ▁make ▁languages ▁less ▁express ive ▁and ▁code ▁more ▁frag ile . ▁The ▁requirement ▁that ▁types ▁do ▁not ▁affect ▁the ▁semantics ▁of ▁the ▁language ▁is ▁difficult ▁to ▁ful fill . ▁ ▁Optional ▁typing ▁is ▁related ▁to , ▁but ▁distinct ▁from , ▁grad ual ▁typing . ▁ ▁While ▁both ▁typing ▁discipl ines ▁can ▁be ▁used ▁to ▁perform ▁static ▁analysis ▁of ▁code ▁( static ▁typing ), ▁optional ▁type ▁systems ▁do ▁not ▁en force ▁type ▁safety ▁at ▁runtime ▁( dynamic ▁typing ). ▁ ▁Pol ym orphism ▁and ▁types ▁▁ ▁The ▁term ▁polym orphism ▁refers ▁to ▁the ▁ability ▁of ▁code ▁( es pecially , ▁functions ▁or ▁classes ) ▁to ▁act ▁on ▁values ▁of ▁multiple ▁types , ▁or ▁to ▁the ▁ability ▁of ▁different ▁instances ▁of ▁the ▁same ▁data ▁structure ▁to ▁contain ▁elements ▁of ▁different ▁types . ▁Type ▁systems ▁that ▁allow ▁polym orphism ▁generally ▁do ▁so ▁in ▁order ▁to ▁improve ▁the ▁potential ▁for ▁code ▁re - use : ▁in ▁a ▁language ▁with ▁polym orphism , ▁program mers ▁need ▁only ▁implement ▁a ▁data ▁structure ▁such ▁as ▁a ▁list ▁or ▁an ▁associ ative ▁array ▁once , ▁rather ▁than ▁once ▁for ▁each ▁type ▁of ▁element ▁with ▁which ▁they ▁plan ▁to ▁use ▁it . ▁For ▁this ▁reason ▁computer ▁scient ists ▁sometimes ▁call ▁the ▁use ▁of ▁certain ▁forms ▁of