anchor.diff:  handle_accept(P, D, From, ListenSocket, Timeout) ->
       case socket:accept(ListenSocket, nowait) of
           {ok, Socket} ->
  -            ok = socket:setopt(Socket, otp, iow, true),
  -            ok = socket:setopt(Socket, otp, meta, meta(D)),
  +            ok = socket:setopt(Socket, {otp,iow}, true),
  +            ok = socket:setopt(Socket, {otp,meta}, meta(D)),
               [ok = socket_copy_opt(ListenSocket, Opt, Socket)
                || Opt <- socket_inherit_opts()],
               handle_connected(
  
positive.code:     Proto = if (Domain =:= local) -> default; true -> tcp end,
      case socket:open(Domain, stream, Proto, Extra) of
          {ok, Socket} ->
              D  = server_opts(),
              ok = socket:setopt(Socket, otp, iow, true),
              ok = socket:setopt(Socket, otp, meta, meta(D)),
              P =
                  #params{
                     socket = Socket,
  
negative.code: %% Socket options
  
  socket_setopt(Socket, {raw, Level, Key, Value}) ->
      socket:setopt_native(Socket, {Level,Key}, Value);
  socket_setopt(Socket, {raw, {Level, Key, Value}}) ->
      socket:setopt_native(Socket, {Level,Key}, Value);
  socket_setopt(Socket, {Tag, Value}) ->
      case socket_opt() of
          #{Tag := Opt} ->
              socket:setopt(Socket, Opt, socket_setopt_value(Tag, Value));
          #{} -> {error, einval}
      end.
  
  socket_setopt_value(_Tag, Value) -> Value.
  
  socket_getopt(Socket, {raw, Level, Key, ValueSpec}) ->
      socket:getopt_native(Socket, {Level,Key}, ValueSpec);
  socket_getopt(Socket, {raw, {Level, Key, ValueSpec}}) ->
      socket:getopt_native(Socket, {Level,Key}, ValueSpec);
  socket_getopt(Socket, Tag) when is_atom(Tag) ->
      case socket_opt() of
          #{Tag := Opt} ->
              socket_getopt_value(Tag, socket:getopt(Socket, Opt));
          #{} -> {error, einval}
      end.
  
  