anchor.diff:      InternalOpts = maps:get(internal_options,Opts),
       Opts#{internal_options := maps:remove(Key, InternalOpts)}.
           
  +
  +%%%================================================================
  +%%%
  +%%% Replace 0 or more options in an options map
  +%%%
  +merge_options(Role, NewPropList, Opts0) when is_list(NewPropList),
  +                                             is_map(Opts0) ->
  +    check_and_save(NewPropList, default(Role), Opts0).
   
   %%%================================================================
   %%%
  
positive.code: 
          %% Enter the user's values into the map; unknown keys are
          %% treated as socket options
          final_preferred_algorithms(
            lists:foldl(fun(KV, Vals) ->
                                save(KV, OptionDefinitions, Vals)
                        end, InitialMap, OptsList2))
      catch
          error:{EO, KV, Reason} when EO == eoptions ; EO == eerl_env ->
              if
  
negative.code:                     {error, {EO,{KV,Reason}}}
              end
      end.
  
  check_and_save(OptsList, OptionDefinitions, InitialMap) ->
      final_preferred_algorithms(
        lists:foldl(fun(KV, Vals) ->
                            save(KV, OptionDefinitions, Vals)
                    end, InitialMap, OptsList)).
      
  
  cnf_key(server) -> server_options;
  cnf_key(client) -> client_options.
  