
Jan-Willem Maessen
Actually, though the operations of most monads constrain evaluation order, an interesting property of the identity monad is that it should not do so. This observation has led me to think long and hard about the distinction between monadic and non-monadic computations in Haskell (admittedly to no real conclusion).
Why would you do this? I don't see what conclusion you could come to that would involving discarding the ID monad, so you'd still need to distinguish between different monads. OTOH, the do-notation or other monadic notations don't really add much to the ID monad. So, a non-monadic syntax would still be desirable for this very common special case. So, what could you possibly think would change? Jon Cast