On 17-Mar-2000, Tom Pledger <[EMAIL PROTECTED]> wrote:
> Marcin 'Qrczak' Kowalczyk writes:
>  > Thu, 16 Mar 2000 14:38:30 -0500, Chris Okasaki <[EMAIL PROTECTED]> pisze:
>  > 
>  > > How are these two statements reconciled for recursive
>  > > types such as
>  > > 
>  > >   newtype Foo = F Foo
>  > 
>  > IMHO simply the only value of this type is bottom. [...]
> 
> Shouldn't applying (\(F _) -> ()) differentiate between bottom and
> (F bottom)?

No.  See 4.2.3:

 |      Unlike algebraic datatypes, the newtype constructor N is unlifted,
 |      so that N _|_ is the same as _|_.

> Do the two statements reconcile trivially in this case, into
> "Foo has the same representation as Foo"?

Yes.  So the representation of Foo is unspecified.

-- 
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