Trivialな例ですみません
クラス定義できるようになった。
class C def id(x) x end end x = C.new() x.id(1)+2 x.id("a")+"b" # x.id("a")+1 ⇒NoMethodError
rubyだとTypeErrorになるけど、Fixnumにto_strが定義されていないのでStringに変換できなくてエラーという扱い。
class C def plus(x,y) x+y end end a = C.new() a.plus(1,2) a.plus("a","b") # a.plus("a",1) ⇒NoMethodError
こちらも同じ。
ちなみに、ローカル変数をlet .. in ..みたいに変換してそこで多相になるという扱いなので、
def plus(x,y) x+y end
とかトップレベルでやっても多相型になりません。こっちは、あと2週間くらいで何とかする。たぶんすると思う。するんじゃないかな。ま、あんまり期待しないでください。