anchor.diff:  
   -define(PIQI_TOOLS_ERROR, 'piqi_tools_error').
   
  -
  -% gen_server state
  --record(state, {
  +-define(PORT_START_TIMEOUT, 2000). % 2 seconds
  +
  +
  +% state of the port sender process (piqi_tools gen_server)
  +-record(sender_state, {
  +    % Erlang port id
  +    port :: port()
  +}).
  +
  +
  +% state of the port receiver process
  +-record(receiver_state, {
       % Erlang port id
       port :: port(),
   
  -    % data remaining from the previous packet received from the port
  -    prev_data = <<>> :: binary(),
  -
  -    % queue of gen_server Clients or request continuations
  -    queue = queue:new() :: any(),
  -
  -    % queue length
  -    queue_len = 0 :: non_neg_integer()
  +    % Pid of the parent process
  +    parent :: pid()
   }).
   
   
  
positive.code:             'undefined' -> 'undefined';
              _ -> iolist_to_binary(ArgsData)
          end,
      call_server({rpc, PiqiMod, Name, BinData}).
  
  
  -spec rpc/2 :: (
  
negative.code:     % without failing the calls. This might be useful for "piqi server" upgrades
      % and in case of potential "piqi server" crashes.
      try
          gen_server:call(?SERVER, Args, ?CALL_TIMEOUT)
      catch
          % Piqi tools has exited, but hasn't been restarted by Piqi supervisor
          % yet
          exit:{noproc, _} ->
              piqi_sup:restart_piqi_tools_child(),
              gen_server:call(?SERVER, Args, ?CALL_TIMEOUT)
      end.
  
  
  