Ahem.  What I should have said is that the list of alternatives always
covers all cases that can occur. For example in

data Foo = Red | Green | Blue

...case x of 
        Red -> True
        other -> ...(case x of 
                         Green -> ...
                         Blue -> ... ) ...

The inner case is considered exhaustive because Red can't occur.  Any
Red alternative in the inner case will be considered dead, and removed.

Simon

| -----Original Message-----
| From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
| On Behalf Of David Sabel
| Sent: 28 July 2003 21:43
| To: [EMAIL PROTECTED]
| Subject: Re: case-identity
| 
| > In Core, the list of alternatives is always exhaustive.
| 
| Ok, thanks.
| So I assume the "dead alternative elimination" is no longer done in
| the simplifier?
| 
| (
| The dead alternative elimination is defined as:
| 
|  case x of            ===>     case x of
|    P1 -> E1                      P1 -> E1
|    ...                           ...
|    ci a1 ... an -> Ei            Pn -> En
|    ...                           [without ci a1 ... an -> Ei]
|    Pn -> En
| 
| if x is not of constructor c_i
| )
| 
| David
| 
| _______________________________________________
| Glasgow-haskell-users mailing list
| [EMAIL PROTECTED]
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


_______________________________________________
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to