anchor.diff:  
   socket_copy_opt(Socket, Tag, TargetSocket) when is_atom(Tag) ->
       case socket_opt() of
  -        #{Tag := {Level, Key}} ->
  -	    case socket:is_supported(Level, Key) of
  +        #{Tag := Opt} ->
  +	    case socket:is_supported(options, Opt) of
   		true ->
  -		    case socket:getopt(Socket, Level, Key) of
  +		    case socket:getopt(Socket, Opt) of
   			{ok, Value} ->
  -			    socket:setopt(TargetSocket, Level, Key, Value);
  +			    socket:setopt(TargetSocket, Opt, Value);
   			{error, _Reason} = Error ->
   			    Error
   		    end;
  
positive.code: %% -------------------------------------------------------------------------
  
  send(?module_socket(Server, Socket), Data) ->
      case socket:getopt(Socket, otp, meta) of
          {ok,
           #{packet := Packet,
             send_timeout := SendTimeout} = Meta} ->
  
negative.code: %% Call: setopts/1
  handle_event({call, From}, {setopts, Opts}, State, {P, D}) ->
      {Result, D_1} = state_setopts(P, D, State, Opts),
      ok = socket:setopt(P#params.socket, {otp,meta}, meta(D_1)),
      Reply = {reply, From, Result},
      case State of
          'connected' ->
  