anchor.diff:  -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 |
  
positive.code: 
  %% ===========================================================================
  %%
  %% if_name2index - Mappings between network interface names and indexes:
  %%                 name -> idx
  %%
  
negative.code: %% Should we define these here or refer to the prim_net module
  -export_type([
                address_info/0,
                ifaddrs/0,
                name_info/0,
  
                ifaddrs_flag/0,
                ifaddrs_flags/0,
  
                name_info_flags/0,
                name_info_flag/0,
  