anchor.diff:  table(?EXPR, string) -> [string,{reduce,3}];
   table(?EXPR, binary) -> [binary,{reduce,21}];
   table(?EXPR, '#\'') -> ['#\'',{reduce,4}];
  +table(?EXPR, '#.') -> ['#.',?EXPR,{reduce,22}];
   table(?EXPR, '\'') -> ['\'',?EXPR,{reduce,5}];
   table(?EXPR, '`') -> ['`',?EXPR,{reduce,6}];
   table(?EXPR, ',') -> [',',?EXPR,{reduce,7}];
  
positive.code: %%  9 sexpr -> ( list ) : '$2'.
  %% 10 sexpr -> [ list ] : '$2'.
  %% 11 sexpr -> '#(' proper_list ')' : list_to_tuple('$2').
  %% 12 sexpr -> '#B(' proper_list ')' :
  %%        case catch lfe_eval:expr([binary|'$2']) of
  %%            Bin when is_bitstring(Bin) -> Bin;
  %%            _ -> return_error(line('$1'))
  %%        end
  %% 13 sexpr -> '#M(' proper_list ')' :
  %%        case catch maps:from_list(pair_list('$2')) of
  %%            Map when is_map(Map) -> Map;
  %%            _ -> return_error(line('$1'))
  %%        end
  %% 14 list -> sexpr list_tail : ['$1'|'$2].
  %% 15 list -> empty : [].
  %% 16 list_tail -> sexpr list_tail : ['$1'|'$2'].
  
negative.code: reduce(21, [T|Vs]) -> [val(T)|Vs];              %s->binary
  reduce(4, [T|Vs]) ->                            %s->fun
      [make_fun(val(T))|Vs];
  reduce(22, [S,D|Vs]) ->                         %s->#. s
      [eval_expr(line(D), S)|Vs];
  reduce(5, [S,_|Vs]) -> [[quote,S]|Vs];          %s->' s
  reduce(6, [S,_|Vs]) -> [[backquote,S]|Vs];      %s->` s
  reduce(7, [S,_|Vs]) -> [[unquote,S]|Vs];        %s->, s
  