こういう規則を作る方法もある
「変数の初期化・変更は必ず同一のifブロック内で行う」

if rand(2) == 0
 c = "a"
else
 c = 1
end
function(c)

↓

if (memo = rand(2) ) == 0
 String c = "a"
else
 Int c = 1
end


if memo == 0
 function_String(c)
else
 function_Int(c)
end