anchor.diff:  ping(IP, Port) ->
       case gen_server:call(srv_name(), {ping, IP, Port}) of
           timeout -> pang;
  -        Reply   ->
  -	    LID = get_string("id", Reply),
  -            etorrent_dht:integer_id(LID)
  +        Values ->
  +            ID = decode_response(ping, Values)
       end.
   
   %
  
positive.code:                     NewNext, NewQueried, NewAlive, NewWithPeers).
  
  
  get_peers(IP, Port, InfoHash)  ->
      case (catch do_get_peers(IP, Port, InfoHash)) of
          {'EXIT', _} -> {error, response};
          Other -> Other
      end.
  
  do_get_peers(IP, Port, InfoHash) ->
      case gen_server:call(srv_name(), {get_peers, IP, Port, InfoHash}) of
          timeout -> {error, timeout};
          Values  ->
              LID = get_string("id", Values),
              ID = etorrent_dht:integer_id(LID),
              LToken = get_string("token", Values),
              Token = list_to_binary(LToken),
              NoPeers = make_ref(),
              MaybePeers = get_value("values", Values, NoPeers),
              {Peers, Nodes} =
  		case MaybePeers of
  		    NoPeers when is_reference(NoPeers) ->
  			LCompact = get_string("nodes", Values),
  			INodes = compact_to_node_infos(list_to_binary(LCompact)),
  			{[], INodes};
  		    PeerStrings when is_list(PeerStrings) ->
  			BinPeers = [list_to_binary(S) || S <- PeerStrings],
  			PeerLists = [compact_to_peers(N) || N <- BinPeers],
  			IPeers = lists:flatten(PeerLists),
  			{IPeers, []}
  		end,
              {ID, Token, Peers, Nodes}
      end.
  
  %
  %
  %
  
negative.code: 
  get_peers_query() ->
     {get_peers, [{<<"id">>, node_id()},
                  {<<"info_hash">>, info_hash()}]}.
  
  announce_query() ->
     {announce, [{<<"id">>, node_id()},
                 {<<"info_hash">>, info_hash()},
                 {<<"token">>, token()},
                 {<<"port">>, portnum()}]}.
  
  dht_query() ->
     All = [ping_query(), find_node_query(), get_peers_query(), announce_query()],
      oneof([{Method, transaction(), lists:sort(Params)}
             || {Method, Params} <- All]).
  
  prop_inv_compact() ->
     ?FORALL(Input, list(dht_node()),
  