anchor.diff:       "%%\n\n").
   
   hrl_header(Name) ->
  -    header() ++ "-hrl_name('" ++ Name ++ ".hrl').\n".
  +    header() ++ "-hrl_name('" ++ ?S(Name) ++ ".hrl').\n".
   
   %% avp_info/1
   
   avp_info(Entry) ->  %% {Name, Arity}
       case Entry of
  -        {'<',A,'>'} -> {A, 1};
  -        {A}         -> {A, 1};
  -        [A]         -> {A, {0,1}};
  +        {{A}} -> {A, 1};
  +        {A}   -> {A, 1};
  +        [A]   -> {A, {0,1}};
           {Q,T} ->
               {A,_} = avp_info(T),
               {A, arity(Q)}
  
positive.code:     {?clause, [], [], [?INTEGER(Id)]};
  
  c_id(error) ->
      ?UNEXPECTED(0).
  
  %%% ------------------------------------------------------------------------
  %%% # vendor_id/0
  
negative.code:     Imported = lists:flatmap(fun avps/1, get_value(import_enums, Spec)),
      Groups = get_value(grouped, Spec)
          ++ lists:flatmap(fun avps/1, get_value(import_groups, Spec)),
      Enums = [T || {N,_} = T <- get_value(enum, Spec),
                    not lists:keymember(N, 1, Imported)]
          ++ Imported,
      lists:map(fun c_empty_value/1, Groups ++ Enums)
          ++ [{?clause, [?VAR('Name')], [], [?CALL(empty, [?VAR('Name')])]}].
  
  c_empty_value({Name, _, _, _}) ->
      {?clause, [?Atom(Name)],
       [],
       [?CALL(empty_group, [?Atom(Name)])]};
  
  c_empty_value({Name, _}) ->
      {?clause, [?Atom(Name)],
       [],
       [?TERM(<<0:32/integer>>)]}.
  
  