anchor.diff:  
   format_msg_record(Msg, Fields) ->
       [f("-record(~p,~n", [Msg]),
  -     f("        {~n"),
  -     format_hfields(8+1, Fields),
  +     f("        {"),
  +     case outdent_first(format_hfields(8+1, Fields)) of
  +         ""  -> "\n";
  +         FFs -> FFs
  +     end,
        f("        }).~n")].
   
   format_hfields(Indent, Fields) ->
  
positive.code:          "    gpb:decode_msg(Bin, MsgName, get_msg_defs()).~n"),
         "\n",
         f("get_msg_defs() ->~n"
           "    [~n~s].~n", [format_msgs_and_enums(5, Defs)])]).
  
  format_msgs_and_enums(Indent, Defs) ->
      Enums = [Item || {{enum, _}, _}=Item <- Defs],
  
negative.code: indent(Indent, Str) ->
      lists:duplicate(Indent, $\s) ++ Str.
  
  outdent_first(IoList) ->
      lists:dropwhile(fun(C) -> C == $\s end,
                      binary_to_list(iolist_to_binary(IoList))).
  
  index_seq([]) -> [];
  index_seq(L)  -> lists:zip(lists:seq(1,length(L)), L).
  
  