anchor.diff:    }.
     
   %% Blocks
  -
   block -> '{' expr_list '}' : 
     #lambda{
       line=?line('$1'), 
       body='$2'
     }.
  -  
   block -> '{' '|' block_args '|' expr_list '}' :
     #lambda{
       line=?line('$1'), 
       args='$3', 
       body='$5'
     }.
  -
   block -> do expr_list 'end' :
     #lambda{
       line=?line('$1'),
       body='$2'
  -  }.
  -  
  +  }. 
   block -> do '|' block_args '|' expr_list 'end' :
     #lambda{
       line=?line('$1'), 
  
positive.code:     name     = ?identifier_name('$3'), 
      block    = '$4'
    }.
    
  call -> call_expr '.' function_identifier '(' ')' block :
    #remote_call{
      line     = ?line('$2'), 
      receiver = '$1', 
      name     = ?identifier_name('$3'), 
      block    = '$6'
    }.
    
  call -> call_expr '.' function_identifier '(' exprs ')' block :
    #remote_call{
      line     = ?line('$2'), 
  
negative.code:     function  = ?identifier_name('$3'),
      args      = '$5'
    }.
  call -> erl '.' identifier '.' identifier '(' ')' :
    #native_call{
      line      = ?line('$2'),
      module    = ?identifier_name('$3'),
      function  = ?identifier_name('$5')
    }.
  call -> erl '.' identifier '.' identifier '(' exprs ')' :
    #native_call{
      line      = ?line('$2'),
  