On Sat, Aug 15, 2009 at 11:45 PM, John A. De Goes <j...@n-brain.net> wrote: > > Effect system optimizations are about taking programs that are correct, and > transforming them to faster but equivalent programs that are still correct.
And since reordering access to externally modifiable data (external includes memory if it's visible to other therads) is *not* safe, that shouldn't be done. You're arguing for doing unsafe (i.e. they can cause a functioning program to become non-functioning) transformations! That said, your reasoning precludes the use of file read buffering, and > other similar operations that are routinely done. It's only an illusion that > such programs are "safe", with or without transformation of sequential read > operations. Yes, you do have to be very careful about abstractions like that, but the fact that we have some of that now, which can cause very hard-to-catch bugs when you rely on ordering, is no good argument that we should add even more of it! -- Sebastian Sylvan
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe