anchor.diff:  do_parse_config([], _Val) ->
       error;
   
  -do_parse_config(Type, _Val) ->
  -    throw({invalid_spec, Type}).
  +do_parse_config(_Type, _Val) ->
  +    unknown.
   
   
   %% @private
  
positive.code:                     end,
                      parse_config(Rest, NewOk, NoOk, Syntax, Opts);
                  error ->
                      throw({invalid_key, AtomKey})
              end;
          SyntaxOp ->
              case do_parse_config(SyntaxOp, Val) of
                  {ok, Val1} ->
                      parse_config(Rest, [{AtomKey, Val1}|Ok], NoOk, Syntax, Opts);
                  error ->
                      throw({invalid_key, AtomKey})
              end
      end.
  
  
  %% @private
  to_existing_atom(Term) when is_atom(Term) ->
      Term;
  
  to_existing_atom(Term) ->
      case catch list_to_existing_atom(nklib_util:to_list(Term)) of
          {'EXIT', _} -> throw({unknown_atom, Term});
          Atom -> Atom
      end.
  
  
  
  %% @private
  -spec do_parse_config(syntax_opt(), term()) ->
      {ok, term()} | error.
  
  do_parse_config(any, Val) ->
      {ok, Val};
  
  do_parse_config(atom, Val) ->
      {ok, to_existing_atom(Val)};
  
  do_parse_config(boolean, Val) when Val==0; Val=="0" ->
      {ok, false};
  
negative.code: parse_config([], _Syntax, _) ->
      {ok, [], []};
  
  parse_config(Terms, Syntax, Opts) when is_list(Terms), is_map(Opts) ->
      try
          parse_config(Terms, [], [], Syntax, Opts)
      catch
          throw:Throw ->
              {error, Throw}
      end;
  
  parse_config(Terms, Syntax, Opts) when is_map(Terms), is_map(Opts) ->
      case maps:size(Terms) of
          0 -> parse_config([], Syntax, Opts);
          _ -> parse_config(maps:to_list(Terms), Syntax, Opts)
  