anchor.diff:                 true -> [$_, string:to_lower(C)];
                  false -> [C]
               end
  -        end, T)]).
  +        end, T)].
   
   %% generate include/kpro.hrl
   gen_header_file(Records) ->
  
positive.code: field_type(Namespace, {array, Name}, Def) ->
    {array, field_type(Namespace, Name, Def)}.
  
  %% 'FooBarV1' -> foo_bar_v1
  underscorize(Name) when is_atom(Name) ->
    underscorize(atom_to_list(Name));
  underscorize([H | T]) ->
    list_to_atom(
      [ string:to_lower(H) |
        lists:flatmap(
          fun(C) ->
  
negative.code: global_name_atom(Namespace, Name) when is_atom(Name) ->
    global_name_atom(Namespace, atom_to_list(Name));
  global_name_atom(NamespaceStr, NameStr) ->
    list_to_atom(NamespaceStr ++ "_" ++ singular(underscorize(NameStr))).
  
  % for a whole group
  records(Defs) -> records(Defs, Defs).
  