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:             ['fun', M, F, A]
      end.
  
  %% pair_list(List) -> [{A,B}].
  %%  Generate a list of tuple pairs from the elements. An error if odd
  %%  number of elements in list.
  
  pair_list([A,B|L]) -> [{A,B}|pair_list(L)];
  pair_list([]) -> [].
  
  %% format_error(Error) -> String.
  %%  Format errors to printable string.
  
negative.code:         true -> Error;
          false -> lfe_io:print1(Error)
      end.
  
  %% return_error(Error).
  %%  To be used in grammar files to throw an error message to the
  %%  parser toplevel.
  
  -compile({nowarn_unused_function, return_error/2}).
  -spec return_error(integer(), any()) -> no_return().
  
  return_error(Line, Message) ->
      throw({user_error, {Line, ?MODULE, Message}}).
  