anchor.diff:                                              is_binary(Host) ->
       case ets:lookup(drains, DrainId) of
           [#drain{channel_id=ChannelId, token=Token}] ->
  -            case ets:match_object(drains, #drain{id='_', channel_id=ChannelId, token='_', resolved_host='_', host=Host, port=Port, tcp='_'}) of
  +            case ets:match_object(drains, #drain{channel_id=ChannelId, host=Host, port=Port, _='_'}) of
                   [_] ->
                       {error, already_exists};
                   [] ->
  
positive.code: 
  delete(ChannelId, Host, Port) when is_integer(ChannelId), is_binary(Host) ->
      Port1 = if Port == "" -> undefined; true -> list_to_integer(Port) end,
      case ets:match_object(drains, #drain{id='_', channel_id=ChannelId, token='_', resolved_host='_', host=Host, port=Port1, tcp='_'}) of
          [#drain{id=DrainId}|_] ->
              delete(DrainId);
          _ ->
  
negative.code: 
  new_token(Retries) ->
      Token = list_to_binary("d." ++ uuid:to_string(uuid:v4())),
      case ets:match_object(drains, #drain{token=Token, _='_'}) of
          [#drain{}] -> new_token(Retries-1);
          [] -> Token
      end.
  