anchor.diff:  
   -export([start_link/0, init/1, terminate/2, code_change/3, handle_call/3, handle_cast/2, 
            handle_info/2]).
  --export_type([parse_opt/0]).
  +-export_type([syntax/0, parse_opts/0]).
   
   
   -compile({no_auto_import, [get/1, put/2]}).
   
  --type opt() ::
  +-type syntax_subopt() ::
       any | atom | boolean | {enum, [atom()]} | list | pid | proc |
       integer | pos_integer | nat_integer | {integer, none|integer(), none|integer()} |
       {integer, [integer()]} | {record, atom()} |
  
positive.code: 
  
  %% @doc Loads a domain configuration
  -spec load_domain(term(), nklib:domain(), map()|list(), map()|list(), parse_spec()) ->
      ok | {error, term()}.
  
  load_domain(Mod, Domain, Opts, Defaults, Spec) ->
      do_load_domain(Mod, Domain, nklib_util:to_list(Opts), 
                      nklib_util:to_list(Defaults), Spec).
  
  %% @private
  do_load_domain(Mod, Domain, Opts, Defaults, Spec) ->
      ValidDomainKeys = proplists:get_keys(Defaults),
      DomainKeys = proplists:get_keys(Opts),
      case DomainKeys -- ValidDomainKeys of
  
negative.code:     end;
  
  do_parse_config({enum, List}, Val) ->
      Atom = to_existing_atom(Val),
      case lists:member(Atom, List) of
          true -> {ok, Atom};
          false -> error
  