anchor.diff:  
   Rootsymbol grammar.
   
  -grammar -> statements : '$1'.
  -
  -%% Program statements
  -statements -> expr : ['$1'].
  -statements -> expr separators : ['$1'].
  -statements -> separators statements : '$2'.
  -statements -> expr separators statements : ['$1'|'$3'].
  +grammar -> expr_list : '$1'.
  +
  +%% Expression lists 
  +expr_list -> expr : ['$1'].
  +expr_list -> expr separators : ['$1'].
  +expr_list -> separators expr_list : '$2'.
  +expr_list -> expr separators expr_list : ['$1'|'$3'].
   
   separators -> separator : '$empty'.
   separators -> separator separators : '$empty'.
  
positive.code: inline_block -> '{' inline_statements '}' : {lambda, line('$1'), [], $2}.
  inline_block -> '{' '|' exprs '|' inline_statements '}' : {lambda, line('$1'), '$3', '$5'}.
  
  multiline_block -> do statements 'end' : {lambda, line('$1'), [], '$2'}.
  multiline_block -> do '|' exprs '|' statements 'end' : {lambda, line('$1'), '$3', '$5'}.
  
  %% Erlang function calls
  erl_funcall -> identifier '::' identifier '(' ')' : {erl_funcall, line('$2'), '$1', '$3', []}.
  
negative.code: receive_expr -> 'receive' separator clauses after_clause 'end': {'receive', line('$1'), '$3', '$4'}.
  receive_expr -> 'receive' separator after_clause 'end' : {'receive', line('$1'), [], '$3'}.
    
  after_clause -> 'after' expr separator expr_list : {'after', line('$1'), '$2', '$4'}.
  
  %% If expressions
  if_expr -> if_op expr separator expr_list 'end' : if_forms({'$1', '$2', '$4'}).
  if_expr -> if_op expr separator expr_list else_clause 'end' : if_forms({'$1', '$2', '$4', '$5'}).
  
  if_op -> 'if'   : '$1'.
  if_op -> unless : '$1'.
  
  else_clause -> else expr_list : {else_clause, line('$1'), '$2'}.
  
  %% For loops
  for_expr -> for match_expr in expr separator expr_list end : {for, line('$1'), '$2', '$4', '$6'}.
  
  %% Try expressions
  try_expr -> 'try' expr_list catch_clauses 'end' : {'try', line('$1'), '$2', '$3'}.
  
  catch_clauses -> catch_clause catch_clauses : ['$1'|'$2'].
  catch_clauses -> catch_clause : ['$1'].
  
  catch_clause -> 'catch' expr separator expr_list : {'catch', line('$1'), '$2', '$4'}.
  
  %% Boolean operators
  bool_op -> 'and' : '$1'.
  