▁information . ▁For ▁example , ▁if ▁a ▁type ▁requires ▁that ▁a ▁value ▁must ▁align ▁in ▁memory ▁at ▁a ▁multiple ▁of ▁four ▁bytes , ▁the ▁compiler ▁may ▁be ▁able ▁to ▁use ▁more ▁efficient ▁machine ▁instructions . ▁ ▁Saf ety ▁– ▁A ▁type ▁system ▁enables ▁the ▁compiler ▁to ▁detect ▁meaning less ▁or ▁probably ▁invalid ▁code . ▁For ▁example , ▁we ▁can ▁identify ▁an ▁expression ▁ 3 ▁/ ▁" Hello , ▁World " ▁as ▁invalid , ▁when ▁the ▁rules ▁do ▁not ▁specify ▁how ▁to ▁divide ▁an ▁integer ▁by ▁a ▁string . ▁Str ong ▁typing ▁offers ▁more ▁safety , ▁but ▁cannot ▁guarantee ▁complete ▁type ▁safety . ▁ ▁Type ▁errors ▁A ▁type ▁error ▁is ▁an ▁un int ended ▁condition ▁which ▁might ▁manifest ▁in ▁multiple ▁stages ▁of ▁a ▁program ' s ▁development . ▁Thus ▁a ▁facility ▁for ▁detection ▁of ▁the ▁error ▁is ▁needed ▁in ▁the ▁type ▁system . ▁In ▁some ▁languages , ▁such ▁as ▁H askell , ▁for ▁which ▁type ▁inference ▁is ▁autom ated , ▁l int ▁might ▁be ▁available ▁to ▁its ▁compiler ▁to ▁aid ▁in ▁the ▁detection ▁of ▁error . ▁ ▁Type ▁safety ▁cont ributes ▁to ▁program ▁correct ness , ▁but ▁might ▁only ▁guarantee ▁correct ness ▁at ▁the ▁cost ▁of ▁making ▁the ▁type ▁checking ▁itself ▁an ▁und ec id able ▁problem . ▁In ▁a ▁type ▁system ▁with ▁autom ated ▁type ▁checking ▁a ▁program ▁may ▁prove ▁to ▁run ▁incorrectly ▁yet ▁be ▁safely ▁typed , ▁and ▁produce ▁no ▁compiler ▁errors . ▁Division ▁by ▁zero ▁is ▁an ▁unsafe ▁and ▁incorrect ▁operation , ▁but ▁a ▁type ▁check er ▁running ▁at ▁compile ▁time