動的言語でも型情報追っかけてコンパイルって可能じゃね?

c = 1
c = "a"
function(c)

これを内部で

Int c1 = 1
undef_var(c1)
String c2 = "a"
function(c2)

こうやったらコンパイラ側は型知ってるじゃん