anchor.diff:      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'), 
  
positive.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'),
  
negative.code:     line  = ?line('$2'), 
      name  = ?identifier_name('$1')
    }.
  call -> function_identifier '(' exprs ')' :
    #local_call{
      line = ?line('$2'), 
      name = ?identifier_name('$1'), 
      args = '$3'
    }.
    
  %% Local function calls with blocks
  call -> function_identifier block : 
    #local_call{
      line  = ?line('$2'), 
      name  = ?identifier_name('$1'), 
      block = '$2'
    }.
  call -> function_identifier '(' ')' block : 
    #local_call{
      line  = ?line('$2'), 
      name  = ?identifier_name('$1'), 
      block = '$4'
    }.
  call -> function_identifier '(' exprs ')' block : 
    #local_call{
      line  = ?line('$2'), 
      name  = ?identifier_name('$1'), 
      args  = '$3', 
      block = '$5'
    }.
  
  %% Remote function calls
  