Comment Comment by cheese_it Interestingly, mutable data is also sufficient to achieve general recursion in a typed language: let fact' = ref (fun x -> x) in let fact = fun n -> if n = 0 then 1 else n * !fact' (n-1) in fact' := fact; fact 3 parent cheese_it 5 years ago