if i say: foo =3D do putStrLn "a" unsafeInterleaveIO (putStrLn "b" >> putStrLn "c") putStrLn "d" is it guarenteed that nothing will happen between putting "b" and "c"? that is, while the place/time at which the (putStrLn "b" >> putStrLn "c") is unspecified, is it the case that the whole thing will be done at once? -- Hal Daume III | hdaume@isi.edu "Arrest this man, he talks in maths." | www.isi.edu/~hdaume