On Fri, 2005-08-26 at 14:09 +0200, Christophe Raffalli wrote: > - why should the evaluation order be specified: this is needed if you > want to formally reason about programs ... Indeterminate order is just fine for reasoning: there is no need for a system to be fully deterministic to reason about it, you just end up with sets of possible results instead of a unique one. You can assume determinism and proceed, noting where such assumptions matter and reporting this as a coding 'bug' to the programmer. Or, you can make deductions based on the assumption the programmer knew what they were doing. Considering this case: [print_endline "1"; print_endline "2"];; it is NOT clear immediately the non-determinism matters: certainly there are two possible results, but who said that one is not doing: ocaml < funny_code | sort This issue arose on the Alioth Shootout with floating point tests where various codes generated nice ray traced images from Jon Harrops test .. but the actual numbers were slightly different .. what matters is how the human eye sees the output image, determinism was only required for an artificial reason. -- John Skaller