Simon Peyton-Jones wrote:
| 1 the () defaulting in ghci looks highly dubious to me;
|     having an 'instance Num ()', as given in the doc example,
|     means that all arithmetic will fail, suggesting that this hack
|     is far too intrusive:
|
|         *Main> 1+2
|         *** Exception: def.hs:1:0: No instance nor default
|                 method for class operation GHC.Num.+
|
|     instead of meddling with a wide-ranging and subtle
|     feature like defaults, wouldn't it be easier to switch
|     off ghci's printing of io-results? or use the old standby
|
|         void m = m >> return ()

Well perhaps. But I think all the other alternatives (that I know of) have 
their own disadvantages.  E.g. I'm sure we'd get complaints if we did something 
wide ranging like switching off the printing of IO-results.

The current system has the advantage that it's almost always just what you 
want, but the disadvantage that it will behave oddly in very obscure 
circumstances (when you define instance Num ()).  So we just documented the 
obscure behaviour.  Let's see if it bites anyone.

I think that -fno-print-bind-result should be the default. Several people have asked for this, indeed I'm not sure why we didn't make it the default when we added the option:

http://hackage.haskell.org/trac/ghc/ticket/887

Cheers,
        Simon

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to