■
def foo(x,y) return x+y end foo(1,2) foo("hello","world")
がうまく型付けできないのは、polymorphic methodの問題と言うらしい。
OCamlをベースにして考えるときにはOCamlNG集(http://www.math.nagoya-u.ac.jp/~garrigue/papers/ocaml-ng.pdf)が便利だと思った。Jacques先生のスライドで、OCamlでできないことがまとめてある。
とか思ったけど、intとかstringがbase typeじゃなくてオブジェクト(レコード型)になっていればべつに大丈夫なのか。