On 2006-03-29 at 18:34+0200 Wolfgang Jeltsch wrote: > Am Freitag, 24. März 2006 14:40 schrieb John Hughes: > > [...] > > > Thirdly, the laws one loses are "nearly true" anyway, and that's very often > > enough. See "Fast and loose reasoning is morally correct", POPL 2006. We > > don't need to give up anything to make reasoning *as though* such laws held > > sound, in most cases. > > I will probably have a look at this paper. Nevertheless, > I feel uncomfortable with the fact that something that > isn't a monad claims to be a monad, etc. Maybe we should > rename seq to unsafeSeq or something similar.
Or do what I suggested in http://www.haskell.org//pipermail/haskell-prime/2006-March/001120.html <[EMAIL PROTECTED]> and make seq a pragma. It really doesn't matter that pragmas in C are optional: we don't have to follow that. If we don't like calling these non-optional pragmas by that name, we can think of another, but I'm sure that seq (a) doesn't belong as a function, (b) is essential, and (c) is made too fiddly if it's in a class, so the best way is to use some form of syntax to distinguish them from ordinary functions. It certainly seems to me that we need a method of adding operational annotations while leaving the denotation unchanged (or at least replacing it with something ⊑ it), and that such annotations shouldn't masquerade as functions. I'm also curious to know what people currently involved in implementation think of STEP. Jón -- Jón Fairbairn Jon.Fairbairn at cl.cam.ac.uk _______________________________________________ Haskell-prime mailing list [email protected] http://haskell.org/mailman/listinfo/haskell-prime
