anchor.diff:  separator -> ';' : '$empty'.
   
   %% Inline statements
  -inline_statements -> expr : ['$1'].
  -inline_statements -> expr ';' exprs : ['$1'|'$3'].
  +inline_expr_list -> expr : ['$1'].
  +inline_expr_list -> expr ';' exprs : ['$1'|'$3'].
   
   %% Expressions
   exprs -> expr : ['$1'].
  
positive.code: block -> inline_block : '$1'.
  block -> multiline_block : '$1'.
    
  inline_block -> '{' inline_statements '}' : {lambda, line('$1'), [], $2}.
  inline_block -> '{' '|' exprs '|' inline_statements '}' : {lambda, line('$1'), '$3', '$5'}.
  
  multiline_block -> do expr_list 'end' : {lambda, line('$1'), [], '$2'}.
  multiline_block -> do '|' exprs '|' expr_list 'end' : {lambda, line('$1'), '$3', '$5'}.
  
negative.code: binary -> '<<' string '>>' : {binary, line('$1'), '$2'}.
  
  %% Lambdas
  lambda -> fun '{' inline_expr_list '}' : {lambda, line('$1'), [], '$3'}.
  lambda -> fun '(' ')' '{' inline_expr_list '}' : {lambda, line('$1'), [], '$5'}.
  lambda -> fun '(' exprs ')' '{' inline_expr_list '}' : {lambda, line('$1'), '$3', '$6'}.
  lambda -> fun do expr_list 'end' : {lambda, line('$1'), [], '$3'}.
  lambda -> fun '(' ')' do expr_list 'end' : {lambda, line('$1'), [], '$5'}.
  lambda -> fun '(' exprs ')' do expr_list 'end' : {lambda, line('$1'), '$3', '$6'}.
  