anchor.diff:  literal -> rec_new              : '$1'.
   literal -> fun_call             : '$1'.
   literal -> binary               : '$1'.
  -literal -> range                : '$1'.
   literal -> dotdotdot            : {dotdotdot, line('$1')}.
   
   bool_lit -> boolean             : {atom, line('$1'), unwrap('$1')}.
   
  -range -> integer dotdot integer :
  +range -> signed_integer dotdot signed_integer :
       Line = line('$2'),
  -    Start = unwrap('$1'),
  -    Stop = unwrap('$3'),
  +    Start = unwrap_signed_integer('$1'),
  +    Stop = unwrap_signed_integer('$3'),
       Args0 = ['$1', '$3'],
   
       Args = if
  
positive.code:     end,
  
      {call, Line, {remote, Line, {atom, Line, lists}, {atom, Line, seq}}, Args}.
  
  % list type
  list -> open_list match_expr close_list : {cons, line('$1'), '$2', {nil, line('$1')}}.
  
negative.code: arrow_chains -> arrow_chain    : '$1'.
  arrow_chain  -> arrow fun_call : '$2'.
  
  literal -> float                : '$1'.
  literal -> bool_lit             : '$1'.
  literal -> string               : {string,  line('$1'), unwrap('$1')}.
  