On 17-Mar-2000, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> > newtype Void = Void Void deriving Show
> 
> > Hugs and hbc accept it without complaining. (I haven't got nhc installed.)
> 
> nhc98 reports
> 
>   ====================================
>       Error when renaming::
>   Newtype Main.B is circular.
>   Newtype Main.A is circular.
>   Newtype Main.Void is circular.
> 
> which seems reasonable to me.

Why?

The Haskell report explicitly allows recursive newtype definitions.
So why is it reasonable for a compiler to reject them?

As a question of language design, it might well be reasonable.
But I think the issue here is conformance, and I think it is
clear that nhc98 does not conform to the specification in the
Haskell 98 Report.

-- 
Fergus Henderson <[EMAIL PROTECTED]>  |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"
PGP: finger [EMAIL PROTECTED]        |     -- the last words of T. S. Garp.

Reply via email to