[Ur] typing bind
    Adam Chlipala 
    adamc at impredicative.com
       
    Wed Aug 24 08:13:26 EDT 2011
    
    
  
Gergely Buday wrote:
> one more question about the semicolon operator:
>
> when there are a number of<- operators, and a return at the end,
> then, the right-associativity of bind let me compute the type of the
> expresson
>
> x1<- f y1;
> x2<- g y2;
> return xml = bind ( f y1) (fn x1 =>  bind (g y2) (fn x2 =>  return xml))
>
> But what can I do when there are more non-<- lines at the end, like
>
> fun write t s =
>      oldTail<- get t.Tail;
>      newTail<- source End;
>      set oldTail (Line (s, newTail));
>      set t.Tail newTail
>    
The syntax [e1; e2] is sugar for [bind e1 (fn () => e2)].  I hope that 
answers the question.
    
    
More information about the Ur
mailing list