[Haskell] strictness of putChar: report incomplete?

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Tue Oct 4 08:46:44 EDT 2005


I wrote:

> > ghc:
> > putChar _|_ -> _|_
> > 
> > hugs:
> > putChar _|_ -> valid IO ()
> 
> I think it comes down to buffering behaviour doesn't it?

Having reviewed the IRC logs, I see I was talking nonsense.

You want to be able to store a closure for (putChar undefined) in a
data structure, which seems like a perfectly reasonable thing to do.
Provided the IO action is never actually run (after being retrieved
from the data structure), the program really ought not to crash.

I see that nhc98 and hbc agree with Hugs on this behaviour, so ghc
_must_ be wrong.  :-)

Regards,
    Malcolm


More information about the Haskell mailing list