anchor.diff:              (_, TmpAcc) -> TmpAcc
           end, [], Fields),
       collect_full_messages(Tail ++ SubMessages, [{Name, FieldsOut} | Acc]);
  +collect_full_messages([{option,2},
  +                       {bareword,2,"java_package"},
  +                       {'=',2},
  +                       {string,2, _},
  +                       {';',2}|Tail], Acc) ->
  +    collect_full_messages(Tail, Acc);
   collect_full_messages([{package, _Line1}, {bareword, _Line2, _PackageName}, {';', _Line3} | Tail], Acc) ->
       collect_full_messages(Tail, Acc);
  -collect_full_messages([], Acc) -> 
  +collect_full_messages([], Acc) ->
       Acc.
   
  -write_header_include_file(Basename, Messages) ->	
  +write_header_include_file(Basename, Messages) ->
       {ok, FileRef} = file:open(Basename ++ ".hrl", [write]),
       [begin
           OutFields = [string:to_lower(A) || {_, _, _, A, _, _} <- lists:keysort(1, Fields)],
           io:format(FileRef, "-record(~s, {~s}).~n", [string:to_lower(Name), string:join(OutFields, ", ")])
       end || {Name, Fields} <- Messages],
       file:close(FileRef).
  -    
  +
   atomize(String) ->
       list_to_atom(string:to_lower(String)).
  -    
  +
   replace_atom(Find, Find, Replace) -> Replace;
  -    
  +
   replace_atom(Tuple, Find, Replace) when is_tuple(Tuple) ->
       list_to_tuple([replace_atom(Term, Find, Replace) || Term <- tuple_to_list(Tuple)]);
   
   replace_atom(List, Find, Replace) when is_list(List) ->
       [replace_atom(Term, Find, Replace) || Term <- List];
  -    
  +
   replace_atom(Other, _Find, _Replace) ->
       Other.
  -    
  
positive.code:         false ->
              Opts0
      end.
      
  expand_to_record_function(Msgs, Line, Clause) ->
      {function,Line,to_record,2,[filter_to_record_clause(Msg, Clause) || Msg <- Msgs]}.
  
  
negative.code: 
  filter_forms(Msgs, [{function,L,iolist,2,[Clause]}|Tail], Basename, Acc) ->
      filter_forms(Msgs, Tail, Basename, [expand_iolist_function(Msgs, L, Clause)|Acc]);
  
  filter_forms(Msgs, [{function,L,decode_pikachu,1,[Clause]}|Tail], Basename, Acc) ->
      Functions = [begin
          {function,L,list_to_atom("decode_" ++ string:to_lower(Name)),1,[replace_atom(Clause, pikachu, atomize(Name))]}
      end || {Name, _} <- Msgs],
      filter_forms(Msgs, Tail, Basename, Functions ++ Acc);
  
  filter_forms(Msgs, [{function,L,decode,2,[Clause]}|Tail], Basename, Acc) ->
      filter_forms(Msgs, Tail, Basename, [expand_decode_function(Msgs, L, Clause)|Acc]);
  
  filter_forms(Msgs, [{function,L,to_record,2,[Clause]}|Tail], Basename, Acc) ->
      filter_forms(Msgs, Tail, Basename, [expand_to_record_function(Msgs, L, Clause)|Acc]);
  
  