anchor.diff:      {ok, Value, Data2, Pos2} = unmarshal(Type, Data1, Pos1),
       {ok, #variant{type=Type, value=Value}, Data2, Pos2}.
   
  +
  +unmarshal_uint(Len, Data, Pos) when is_integer(Len) ->
  +    Bitlen = Len * 8,
  +    Pad = padding(Len, Pos),
  +    << 0:Pad, Value:Bitlen/native-unsigned, Data1/binary >> = Data,
  +    Pos1 = Pos + Pad div 8 + Len,
  +    {ok, Value, Data1, Pos1}.
  +
  +unmarshal_int(Len, Data, Pos) ->
  +    Bitlen = Len * 8,
  +    Pad = padding(Len, Pos),
  +    << 0:Pad, Value:Bitlen/native-signed, Data1/binary >> = Data,
  +    Pos1 = Pos + Pad div 8 + Len,
  +    {ok, Value, Data1, Pos1}.
   
   unmarshal_signature([], Res) ->
       Res;
  
positive.code: 
  -include("dbus.hrl").
  
  
  %% api
  -export([
  
negative.code:     case catch unmarshal_message(Data) of
  	{ok, Header, Data1} ->
  	    unmarshal_data(Data1, Res ++ [Header]);
  	{'EXIT', Reason} ->
  	    error_logger:info_msg("unmarshal_data: ~p~n", [Reason]),
  	    {ok, Res, Data}
      end.
  
  