Hi all, I have a question simplified as below: let rec fib = fun x -> fib (x - 1);; val fib : int -> 'a = # let rec fib = (Obj.magic (fun x -> fib (x - 1)) : int -> 'a);; Characters 15-47: let rec fib = (Obj.magic (fun x -> fib (x - 1)) : int -> 'a);; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error: This kind of expression is not allowed as right-hand side of `let rec' I know `fib` is a legal expression, is there any way to work around it? Thanks -- Hongbo