anchor.diff:      %% FIXME: do cleverer things here, depending on type of the field,
       %%        and also depending on the field's occurrence
       %% for now, just make the generated code compile
  -    [[f("~s(_NewValue, Msg) ->~n", [mk_fn(add_field_, MsgName, FName)]),
  +    [[f("~p(_NewValue, Msg) ->~n", [mk_fn(add_field_, MsgName, FName)]),
         f("    Msg.~n~n")]
        || #field{name=FName} <- MsgDef].
   
  
positive.code: 
  format_bit_skipper(MsgName, BitLen) ->
      SkipFn = mk_fn(skip_, BitLen, MsgName),
      [f("~s(<<_:~w, Rest/binary>>, Msg) ->~n", [SkipFn, BitLen]),
       f("    ~s(Rest, 0, 0, Msg).~n~n",  [mk_fn(d_read_field_def_, MsgName)])].
  
  format_msgs_and_enums(Indent, Defs) ->
      Enums = [Item || {{enum, _}, _}=Item <- Defs],
  
negative.code:     end;
  format_field_decoder(MsgName, #field{is_packed=true, name=FName}=FieldDef) ->
      DecodePackWrapFn = mk_fn(d_field_, MsgName, FName),
      [f("~p(<<1:1, X:7, Rest/binary>>, N, Acc, Msg) ->~n", [DecodePackWrapFn]),
       f("    ~p(Rest, N+1, X bsl (N*7) + Acc, Msg);~n", [DecodePackWrapFn]),
       f("~p(<<0:1, X:7, Rest/binary>>, N, Acc, #~p{~p=AccSeq}=Msg) ->~n",
         [DecodePackWrapFn, MsgName, FName]),
       f("    Len = X bsl (N*7) + Acc,~n"),
       f("    <<PackedBytes:Len/binary, Rest2/binary>> = Rest,~n"),
  