Hello caml-list, with respect to the value restriction, what exactly constitutes a value? the textbook definition doesn't seem to hold, since the following generalizes: let f = let x = 1 in fun g h x -> g (h x);; while this won't: let f () = let x = (fun x -> x) (fun x -> x) in fun g h x -> g (h x);; cheers --Jacques L.