http://d.hatena.ne.jp/KeisukeNakano/20070314/1173846972
なるほど、参考になります。でも 2 番目の

  • apply_3 で f を呼ぶときにはオプショナル引数を省略しているから,apply_3 f は int 型.
  • apply_3 で f を呼んでも部分適用かもしれないので,apply_3 f は ?i:int -> int 型.

のところがまだよく分かっていません。

# (fun ?i:(i=0) x y -> x) 7;;   
- : '_a -> int = <fun>

の場合 ?i は消えてますが、そういう問題ではないのかな。
メイリングリスト似たような問題があったが、微妙に違うみたい。