anchor.diff:  Nonterminals
     grammar expr_list
     expr block_expr stab_expr call_expr max_expr base_expr
  -  matched_expr matched_op_expr unmatched_expr unmatched_op_expr
  +  matched_expr matched_op_expr unmatched_expr op_expr
     comma_separator kv_eol
  -  add_op mult_op unary_op ref_unary_op addadd_op multmult_op bin_concat_op
  +  add_op mult_op unary_op unary_ref_op addadd_op multmult_op bin_concat_op
     match_op arrow_op module_ref_op default_op when_op pipe_op in_op
     andand_op oror_op andalso_op orelse_op and_op or_op comp_expr_op
     open_paren close_paren
  
positive.code: Left     300 dot_call_op.
  Left     300 dot_op.
  Right    310 module_ref_op.
  Nonassoc 320 ref_unary_op.
  Nonassoc 330 var.
  
  
  %%% MAIN FLOW OF EXPRESSIONS
  
  
negative.code: 
  %% Operators
  
  build_op(Op, Left, Right) when size(Op) == 3 ->
    { ?exprs(Op), ?line(Op), [Left, Right] };
  
  build_op(Op, Left, Right) ->
    { ?op(Op), ?line(Op), [Left, Right] }.
  
  build_unary_op(Op, Expr) ->
    { ?op(Op), ?line(Op), [Expr] }.
  