anchor.diff:  %% -------------------------------------------------------------------------
   
   listen(Port, Opts) ->
  -    Opts_1 = normalize_setopts(Opts),
  +    Opts_1 = internalize_setopts(Opts),
       {Mod, Opts_2} = inet:tcp_module(Opts_1),
       {StartOpts, Opts_3} = split_start_opts(Opts_2),
       case Mod:getserv(Port) of
  
positive.code:     {error, enotsup}.
  
  fdopen(Fd, Opts) when is_integer(Fd), 0 =< Fd, is_list(Opts) ->
      Opts_1 = normalize_setopts(Opts),
      {Mod, Opts_2} = inet:tcp_module(Opts_1),
      Domain = domain(Mod),
      {StartOpts, Opts_3} = split_start_opts(Opts_2),
  
negative.code:             exit(badarg)
       end || Opt <- Opts].
  
  internalize_getopts(Opts) ->
      [case Opt of
           Tag when is_atom(Tag)        -> Opt;
           {raw, _}                     -> Opt;
           {raw, Level, Key, ValueSpec} -> {raw, {Level, Key, ValueSpec}};
           _                            -> exit(badarg)
       end || Opt <- Opts].
  
  externalize_getopts(Opts) ->
      [case Opt of
           {raw, {Level, Key, Value}} -> {raw, Level, Key, Value};
           {Tag, _} when is_atom(Tag) -> Opt;
           _                          -> exit(badarg)
       end || Opt <- Opts].
   
  %%
  %% -------
  %% Split options into server start options and other options.
  