anchor.diff:  
   %% ===========================================================================
   %%
  +%% getifaddrs - Get interface addresses
  +%%
  +
  +-spec getifaddrs() -> {ok, IfAddrs} | {error, Reason} when
  +      IfAddrs :: [ifaddrs()],
  +      Reason  :: term().
  +
  +-ifdef(USE_ESOCK).
  +getifaddrs() ->
  +    prim_net:getifaddrs(#{}).
  +-else.
  +getifaddrs() ->
  +    erlang:error(notsup).
  +-endif.
  +
  +
  +-spec getifaddrs(Namespace) -> {ok, IfAddrs} | {error, Reason} when
  +      Namespace :: file:filename_all(),
  +      IfAddrs   :: [ifaddrs()],
  +      Reason    :: term().
  +
  +-ifdef(USE_ESOCK).
  +getifaddrs(Namespace) when is_list(Namespace) ->
  +    prim_net:getifaddrs(#{netns => Namespace}).
  +-else.
  +-dialyzer({nowarn_function, getifaddrs/1}).
  +getifaddrs(Namespace) when is_list(Namespace) ->
  +    erlang:error(notsup).
  +-endif.
  +
  +
  +
  +
  +%% ===========================================================================
  +%%
   %% if_name2index - Mappings between network interface names and indexes:
   %%                 name -> idx
   %%
  
positive.code: %% Should we define these here or refer to the prim_net module
  -export_type([
                address_info/0,
                name_info/0,
  
                name_info_flags/0,
                name_info_flag/0,
  
negative.code: -deprecated({relay,     1, eventually}).
  -deprecated({sleep,     1, eventually}).
  
  
  -type ifaddrs_flag() :: up | broadcast | debug | loopback | pointopoint |
                          notrailers | running | noarp | promisc | master | slave |
                          multicast | portsel | automedia | dynamic.
  -type ifaddrs_flags() :: [ifaddrs_flag()].
  
  %% Note that not all of these fields are mandatory.
  %% Actually there are (error) cases when only the name will be included.
  %% And broadaddr and dstaddr are mutually exclusive!
  
  -type ifaddrs() :: #{name      := string(),
                       flags     := ifaddrs_flags(),
                       addr      := socket:sockaddr(),
                       netmask   := socket:sockaddr(),
                       broadaddr := socket:sockaddr(),
                       dstaddr   := socket:sockaddr()}.
  
  -type name_info_flags()         :: [name_info_flag()|name_info_flag_ext()].
  -type name_info_flag()          :: namereqd |
  