> Simon, I'm sure that a really thorough programmer such as yourself
> would never forget to insert such a test.  But, as was recently
> demonstrated on this mailing list ;-), I'm quite fallible.
> I'm sure there are many other fallible Haskell programmers around.

Don't worry, I'm fallible all right, as much GHC bug mail demonstrates!

> Now, we can certainly debate the likely frequency of such bugs, and
> their cost, and compare this with the advantages and disadvantages
> of exception handling.  In fact, it does seem likely that such
> bugs would be very rare.  The cost of each such bug may be high,
> but if they occur infrequently enough, then the overall cost will be small.
> So maybe you just meant that it wasn't likely to be a significant problem
> in practice.  If that was what you meant, then I'm inclined to agree
> with you.

Yes, that's what I meant.  I'm probably guilty of overstatement.
I do strongly feel that the cost/benefit equation comes down strongly
on the side of the NDSet story.

> > I simply don't think it's reasonable to comletely prescribe
> > the evaluation order of a lazy functional program.
> 
> Why not?  Because it would inhibit optimization?

Not just that; it also places extra side conditions
on reasoning about programs: now any reasoning steps
have to preserve evaluation order.  

Incidentally, if you *do* want to preserve evaluation order
then you can always use "seq".  GHC guarantees not to move
evaluations past "seq".

Simon


Reply via email to