いや、まあそうすれば早くなるんだけど、それでも、
N > 2の時は、N番めの値を求めるには新しい fib () の N - 1番目まで
計算しているから計算量は大体ΣNくらいある。
これはO(n^2)だから、
Haskellで同じように書いた場合はO(n)よりも効率がわるい。

で、OCamlでは
let rec a = a + 1
とか書けないから、OCamlではこの形ではO(n)にできないんじゃね?っていうはなし。

とういわけで、頭のいい人再帰的な定義かつO(n)のfibを書いてくれ!