anchor.diff:  -spec init(port()) -> {ok, state()}.
   init(Socket) ->
     PeerPort =
  -    case inet:peername(Socket) of
  +    try inet:peername(Socket) of
         {ok, {_Ip, Port}} -> Port;
         Error -> Error
  +    catch
  +      _:Error -> Error
       end,
     Authenticated = undefined =:= edis_config:get(requirepass),
     {ok, #state{socket = Socket, peerport = PeerPort, authenticated = Authenticated}}.
  
positive.code: parse_command(#edis_command{cmd = <<"EXEC">>}) -> throw(bad_arg_num);
  parse_command(C = #edis_command{cmd = <<"WATCH">>, args = [_Key|_Keys]}) -> C#edis_command{result_type=ok,group=transaction};
  parse_command(#edis_command{cmd = <<"WATCH">>}) -> throw(bad_arg_num);
  %% -- Errors ---------------------------------------------------------------------------------------
  parse_command(#edis_command{cmd = <<"SYNC">>}) -> throw(unsupported);
  parse_command(#edis_command{cmd = <<"SLOWLOG">>}) -> throw(unsupported);
  
negative.code:                 end
          end, State#state.watched_keys, Keys),
    tcp_ok(State#state{watched_keys = NewWatchedKeys});
  run(#edis_command{cmd = <<"UNWATCH">>, args = []}, State) ->
    tcp_ok(State#state{watched_keys = []});
  %% -- Pub/Sub commands -----------------------------------------------------------------------------
  run(C = #edis_command{cmd = <<"PSUBSCRIBE">>}, State) ->
    ok = edis_pubsub:add_sup_handler(),
  