anchor.diff:  %% @end
   -spec marshal_message(dbus_message()) -> iolist().
   marshal_message(#dbus_message{header=#dbus_header{serial=0}}=_Msg) ->
  -    throw({error, invalid_serial});
  +    throw(invalid_serial);
   
   marshal_message(#dbus_message{header=#dbus_header{type=Type, flags=Flags, serial=S, fields=Fields}, 
                                 body= <<>>}=_Msg) ->
  
positive.code:     case unmarshal_signature(Rest, []) of
          {ok, [], _} -> more;
          {ok, Types, Rest2} ->
              unmarshal_signature(Rest2, [Acc, {struct, Types}]);
          more -> more
      end;
  
  unmarshal_signature(<<$), Rest/bits>>, Acc) ->
      {ok, lists:flatten(Acc), Rest};
  
  unmarshal_signature(<<$}, Rest/bits>>, Acc) ->
      {ok, lists:flatten(Acc), Rest};
  
  unmarshal_signature(<<C, Rest/bits>>, Acc) ->
      Code = unmarshal_type_code(C),
      unmarshal_signature(Rest, [Acc, Code]).
  
  
  unmarshal_type_code($y) -> byte;
  
negative.code: 
  
  unmarshal_signature(<<>>, Acc) ->
      {ok, lists:reverse(Acc), <<>>};
  
  unmarshal_signature(<<$a, ${, KeySig, Rest/bits>>, Acc) ->
      KeyType = unmarshal_type_code(KeySig),
  