
Oops, sent this off list the first time, here it is again.
Jake McArthur
mail@justinbogner.com wrote: | Bind is a sequencing operator rather than an application operator.
In my opinion, this is a common misconception. I think that bind would be nicer if its arguments were reversed.
If this is a misconception, why does thinking of it this way work so well? This idea is reinforced by the do notation syntactic sugar: bind can be represented by going into imperative land and "do"ing one thing before another. The fact that `x' may not actually have to happen before `f' is merely the typical sort of optimization we do in compilers for imperative languages: instructions that do not modify non-local state can be re-ordered, but IO cannot because it jumps elsewhere, no?