seq as a class method

Jon Fairbairn jon.fairbairn at cl.cam.ac.uk
Wed Mar 29 11:58:24 EST 2006


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
<26869.1143633002 at calligramme.charmers> 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




More information about the Haskell-prime mailing list