anchor.diff:      State2 = State#state{next_packet_id = next_packet_id(PacketId)},
       {gen_tcp:send(Socket, Packet), State2}.
   
  +%%% @doc Handle incoming data from the socket.
  +%%%
  +%%% We receive a list here: first two bytes are always in a list,
  +%%% the rest is improper binary.
  +%-spec handle_tcp_recv(Msg, State) -> {noreply, State} when
  +%      Msg :: binary(),
  +%      State :: state().
  +%handle_tcp_recv(_Msg, State) ->
  +%    {noreply, State}.
  +
   -spec parse_headers(Binary, NH) -> [{Key, Value}] when
         Binary :: binary(),
         NH :: pos_integer(),
  
positive.code:       Reason :: inet:posix() | closed.
  call_req(State, Service, {Arg1, Arg2, Arg3}, MsgOptions) ->
      PacketId = State#state.next_packet_id,
      Socket = State#state.sock,
      TTL = proplists:get_value(ttl, MsgOptions, ?DEFAULT_TTL),
      Headers = transport_headers(proplists:get_value(headers, MsgOptions)),
      Payload =
  
negative.code: -spec init_res(State) -> {ok, State} | {stop, Reason} when
        State :: state(),
        Reason:: error_reason().
  init_res(#state{socket=Socket, options=Options}=State) ->
      case recv_packet(Socket, proplists:get_value(init_timeout, Options)) of
          {ok, {init_res, _Id, Payload}} ->
              <<Version:16, NH:16, Rest/binary>> = Payload,
              Headers = parse_headers(Rest, NH),
  