anchor.diff:  expr -> assign_expr : '$1'.
   
   %% Assignment
  -assign_expr -> assign_expr '=' fun_expr :
  -  { match, ?line('$2'), '$1', '$3' }.
  -
  +assign_expr -> assign_expr '=' fun_expr : build_match('$1', '$2', '$3').
   assign_expr -> fun_expr : '$1'.
   
   %% Function definitions
  
positive.code: fun_expr -> add_expr : '$1'.
  
  %% Arithmetic operations
  add_expr -> add_expr add_op mult_expr :
    { binary_op, ?line('$1'), ?op('$2'), '$1', '$3' }.
  
  add_expr -> mult_expr : '$1'.
  
  mult_expr -> mult_expr mult_op unary_expr :
    { binary_op, ?line('$1'), ?op('$2'), '$1', '$3' }.
  
  mult_expr -> unary_expr : '$1'.
  
  unary_expr -> unary_op min_expr :
    { unary_op, ?line('$1'), ?op('$1'), '$2' }.
  
  unary_expr -> min_expr : '$1'.
  
  %% Minimum expressions
  
negative.code: %%%% COPY OF MAIN FLOW FOR STABBER BUT WITHOUT MIN_EXPR PARENS
  
  %% Assignment
  _assign_expr -> _assign_expr '=' _fun_expr : build_match('$1', '$2', '$3').
  _assign_expr -> _fun_expr : '$1'.
  
  %% Function definitions
  