anchor.diff:  
   format_msgs(Indent, Msgs) ->
       string:join([indent(Indent,
  -                        f("{~w, [~n~s]}",
  -                          [{msg,Msg}, format_efields(Indent+2, Fields)]))
  +                        f("{~w,~n~s[~s]}",
  +                          [{msg,Msg},
  +                           indent(Indent+1, ""),
  +                           outdent_first(format_efields(Indent+2, Fields))]))
                    || {{msg,Msg},Fields} <- Msgs],
                   ",\n").
   
  
positive.code: 
  format_msg_record(Msg, Fields) ->
      [f("-record(~p,~n", [Msg]),
       f("        {~n"),
       format_hfields(8+1, Fields),
       f("        }).~n")].
  
  format_hfields(Indent, Fields) ->
  
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).
  
  