true.  GHC's intermediate language has first-class universal
quantification, but not first-class existentials. I can't claim that is
the Right Thing, but it might explain why GHC at least makes the choices
it does

Simon

| -----Original Message-----
| From: Ross Paterson [mailto:[EMAIL PROTECTED]
| Sent: 18 November 2005 13:44
| To: Simon Peyton-Jones
| Cc: Ralf Hinze; [email protected]
| Subject: Re: newtype and existentials
| 
| On Fri, Nov 18, 2005 at 01:31:46PM -0000, Simon Peyton-Jones wrote:
| > yes.  a newtype declares a new type isomorphic to an existing type.
| >     newtype T = MkT S
| > declares T to be isomorphic to S.
| >
| > There is no existing Haskell type isomorphic to your Dynamic.
| >
| > In concrete terms, the newtype constructor is discarded before we
get to
| > System F; but we can't do that with an existential.
| 
| The first argument, but not the second, also applies to
| 
|       newtype T = MkT (forall a. S)

_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to