exceptions and coercions
   
    Stephen Weeks
     
    sweeks@wasabi.epr.com
       
    Thu, 19 Aug 1999 15:02:33 -0700 (PDT)
    
    
  
> I've got a question about exceptions though.  Given
> 
>   let x = e1 in handle z => e2
>   in  e
> 
> I have the flow rule for exceptions being:
> 
>   F(x) >= F(last(e1)) and F(last(e)) >= F(last(e2))
I have no idea why the second rule isn't
F(x) >= F(last(e2))
x is obviously a join point of e1 and e2.
> However, our notes indicate the closure converted
> translation as being:
> 
>   let y1 = [e1]
>   in X(y1,F(last(e1)),F(last(x)))  
> 
>   handle z =>
> 
>      let y2 = [e2]
>      in X(y2,F(last(e2)),F(last(x)))
This jibes with what I wrote above.