>>790
例えば f が型 int -> int を持つ自由変数のとき、
let rec f = f 1 と let f = f 1 は全く意味が違う。そもそも
前者は意味をなさない。
ある変数が自由変数かどうかはコンパイラはすぐに分かるが、
それが自由変数であるべきか否かというのは、
コンパイラには分からないのだ。

だから rec は必要。understand?