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_(<<>>)->
  -    throw(short);
  +unpack_(Bin) when not is_binary(Bin)->    throw(badarg);
   unpack_(Bin) when bit_size(Bin) >= 8 ->
       case Bin of
   % ATOMS
  
positive.code:     << 16#D3:8, N:64/big-signed-integer-unit:1 >>.
  
  % float : erlang's float is always IEEE 754 64bit format.
  %pack_float(F) when is_float(F)->
  %    << 16#CA:8, F:32/big-float-unit:1 >>.
  %    pack_double(F).
  % double
  
negative.code:     Passed = length(Tests).
  
  port_test()->
      Port = open_port({spawn, "ruby ../test/crosslang.rb"}, [binary]),
      Tests = test_data(),
      {[Tests],<<>>} = msgpack:unpack(msgpack:pack([Tests])),
      true = port_command(Port, msgpack:pack(Tests) ),
      receive
  	{Port, {data, Data}}->  {Tests, <<>>}=msgpack:unpack(Data)
  