anchor.diff:                      %%
                       Domain = domain(Mod),
                       %% ?DBG({Domain, BindIP}),
  -                    BindAddr =
  -                        case Domain of
  -                            local ->
  -                                {local, Path} = BindIP,
  -                                #{family => Domain,
  -                                  path   => Path};
  -                            _ ->
  -                                #{family => Domain,
  -                                  addr   => BindIP,
  -                                  port   => BindPort}
  -                        end,
  +                    BindAddr = bind_addr(Domain, BindIP, BindPort),
                       listen_open(
                         Domain, ListenOpts, StartOpts, Fd, Backlog, BindAddr)
               end;
  
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}).
  
  %% -------------------------------------------------------------------------
  
  