anchor.diff:  unmarshal_single_type(Bin) when is_binary(Bin) ->
       case unmarshal_signature(Bin, []) of
           {ok, [Type], <<>>} -> {ok, Type};
  +	{ok, _, _} -> throw({unmarshaling, signature, Bin});
           more -> more
       end.
   
  
positive.code: 
  -define(HEADER_SIGNATURE, [byte, byte, byte, byte, uint32, uint32, {array, {struct, [byte, variant]}}]).
  
  %%%
  %%% API
  %%%
  
negative.code: 		   unmarshal(variant, Variant, 0, $l))
      ].
  
  unmarshal_signature_test() ->
      [
       ?_assertMatch([
  		    {array, {array, {array, string}}}, byte
  		   ], unmarshal_signature(<<"aaasy">>)),
       ?_assertMatch([
  		    byte,
  		    {dict, boolean, variant},
  		    string,
  		    string
  		   ], unmarshal_signature(<<"ya{bv}ss">>)),
       ?_assertMatch([
  		    {array, {struct, [string, string, {array, string}, {dict, string, variant}, string]}}, 
  		    string
  		   ], unmarshal_signature(<<"a(ssasa{sv}s)s">>))
      ].
  -endif.
  