
Hello Chris, Friday, August 3, 2007, 8:09:49 PM, you wrote:
foo = do b' <- readTVar b c' <- readTVar c d' <- readTvar d return (b' + c' / d')
It's true that order of effects *can* be important in monads like IO and STM. It's also true, though, that probably 50% of the time with IO, and
90%, in my programs at least
95% with STM, the order does not actually matter. Taking a hard-line approach on this and forcing a linear code structure is equivalent to ignoring what experience has taught in dozens of other programming languages. Can you think of a single widely used programming language that forces programmers to write linear one-line-per-operation code like this?
assembler :) it's what our opponents propose - let's Haskell be like assembler with its simple and concise execution model :) -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com