>>355 の話を蒸し返して申し訳ないのですが、
どなたか解説して下さい。

Objective Caml version 3.06
# let id x = x;;
val id : 'a -> 'a = <fun>
# let id2 = id id;;
val id2 : '_a -> '_a = <fun>
# let id3 x = id (id x);;
val id3 : 'a -> 'a = <fun>

どうして、id2 は '_a になる?