anchor.diff:  
   % unpack then all
   -spec unpack_(Bin::binary()) -> {msgpack_term(), binary()} | {error, reason()} | no_return().
  -unpack_(Bin) when not is_binary(Bin)->    throw(badarg);
  -unpack_(Bin) when bit_size(Bin) >= 8 ->
  +unpack_(Bin) ->
       case Bin of
   % ATOMS
   	<<16#C0, Rest/binary>> -> {nil, Rest};
  
positive.code: 	<<2#101:3, L:5, V:L/binary, Rest/binary>> -> {V, Rest};                  % raw bytes
  	<<2#1001:4, L:4, Rest/binary>> ->            unpack_array_(Rest, L, []); % array
  	<<2#1000:4, L:4, Rest/binary>> ->            unpack_map_(Rest, L, []);   % map
  	
  % Incomplete / invalid data
  	<<F:16, _/binary>> when F==16#CA; F==16#CB; F==16#CC;
  				F==16#CD; F==16#CE; F==16#CF;
  
negative.code:     << 16#CF:8, N:64/big-unsigned-integer-unit:1 >>.
  
  % negative fixnum
  pack_int_(N) when N >= -32->
      << 2#111:3, N:5 >>;
  % int 8
  pack_int_(N) when N > -128 ->
  