anchor.diff:              Params -> [", ", Params, ", "]
           end]),
        f("    NewMsg = Msg#~p{~p=NewSeq},~n", [MsgName, FName]),
  -     f("    ~s(Rest2, 0, 0, NewMsg).~n~n", [mk_fn(d_read_field_def_, MsgName)]),
  +     f("    ~p(Rest2, 0, 0, NewMsg).~n~n", [mk_fn(d_read_field_def_, MsgName)]),
        format_packed_field_seq_decoder(MsgName, FieldDef)].
   
   format_vi_based_field_decoder(MsgName, #field{type=Type, name=FName}) ->
       BValueExpr = "X bsl (N*7) + Acc",
       {FValueCode, RestVar} = mk_unpack_vi(4, "FValue", BValueExpr, Type, "Rest"),
  -    [f("~s(<<1:1, X:7, Rest/binary>>, N, Acc, Msg) ->~n"
  -       "    ~s(Rest, N+1, X bsl (N*7) + Acc, Msg);~n",
  +    [f("~p(<<1:1, X:7, Rest/binary>>, N, Acc, Msg) ->~n"
  +       "    ~p(Rest, N+1, X bsl (N*7) + Acc, Msg);~n",
          [mk_fn(d_field_, MsgName, FName),
           mk_fn(d_field_, MsgName, FName)]),
  -     f("~s(<<0:1, X:7, Rest/binary>>, N, Acc, Msg) ->~n",
  +     f("~p(<<0:1, X:7, Rest/binary>>, N, Acc, Msg) ->~n",
          [mk_fn(d_field_, MsgName, FName)]),
        f("~s",
          [FValueCode]),
  -     f("    NewMsg = ~s(FValue, Msg),~n", [mk_fn(add_field_, MsgName, FName)]),
  +     f("    NewMsg = ~p(FValue, Msg),~n", [mk_fn(add_field_, MsgName, FName)]),
        f("    ~p(~s, 0, 0, NewMsg).~n",
          [mk_fn(d_read_field_def_, MsgName), RestVar])].
   
  
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"),
  