http://d.hatena.ne.jp/succeed/20061026#1161853372 知っていて書いている:-)のかもしれませんが、これ↓を「きちんと動く」とは言えない、という考え方なのでしょう。 # let f x y = (x, y) ;; val f : 'a -> 'b -> 'a * 'b = <fun> # let f1 = f 1 ;; val f1 : '_a -> int * '_a = <fun> # f1 2 ;; - : int * int = (1, 2) # f1 ;; - : int -> int * int = <fun> # f1 true ;; Characters 3-7: f1 true ;; ^^^^ This expression has type bool but is here used with type int参考: > s