anchor.diff:              ErrRef = make_ref(),
               try
                   ok(ErrRef, call(Server, {setopts, SocketOpts ++ Setopts})),
  -                ok(ErrRef, call(Server, {bind, BindAddr})),
  +                ok(ErrRef, call_bind(Server, BindAddr)),
                   DefaultError = {error, einval},
                   Socket =  
                       val(ErrRef,
  
positive.code:                      Server,
                       {setopts,
                        [{start_opts, StartOpts}] ++ SocketOpts ++ Setopts})),
                  ok(ErrRef, call(Server, {bind, BindAddr})),
                  Socket = val(ErrRef, call(Server, {listen, Backlog})),
                  {ok, ?module_socket(Server, Socket)}
              catch
  
negative.code:         {error, _} ->
              connect_loop(Addrs, Server, Result, Timer)
      end.
  
  bind_addr(Domain, BindIP, BindPort) ->
      case Domain of
          local ->
              case BindIP of
                  any ->
                      undefined;
                  {local, Path} ->
                      #{family => Domain,
                        path   => Path}
              end;
          _ when Domain =:= inet;
                 Domain =:= inet6 ->
              #{family => Domain,
                addr   => BindIP,
                port   => BindPort}
      end.
  
  call_bind(_Server, undefined) ->
      ok;
  call_bind(Server, BindAddr) ->
      call(Server, {bind, BindAddr}).
  
  %% -------------------------------------------------------------------------
  
  