
bf3:
IMHO and being a newbie having 20 years of professional C/C++/C# experience but hardly any Haskell experience, I agree with this... I find the monad syntax very confusing, because it looks so much like imperative code, but it isn't. Personally I also liked the Concurrent Clean approach, although this also introduced extra syntax for the compiler, while `cmd1 >>= \x...' does not. You have to type more, but you see much clearer what is going on.
Peter
PS: It would be very nice for beginners to have a special tool / text editor that allows you see the desugared form of monads and other constructs...
Drop by #haskell and use lambdabot: 11:21 dons> @undo do x <- getChar ; putChar (toUpper x) 11:21 lambdabot> getChar >>= \ x -> putChar (toUpper x) -- Don