anchor.diff:  Left     300 dot_call_op.
   Left     300 dot_op.
   Right    310 module_ref_op.
  -Nonassoc 320 ref_unary_op.
  +Nonassoc 320 unary_ref_op.
   Nonassoc 330 var.
  -
   
   %%% MAIN FLOW OF EXPRESSIONS
   
  
positive.code: unary_op -> '@' : '$1'.
  unary_op -> '@' eol : '$1'.
  
  ref_unary_op -> '::' : '$1'.
  ref_unary_op -> '::' eol : '$1'.
  
  match_op -> '=' : '$1'.
  match_op -> '=' eol : '$1'.
  
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] }.
  