anchor.diff:      end;
   
   parse_config(Terms, Spec) when is_map(Terms) ->
  -    parse_config(maps:to_list(Terms), Spec).
  +    case maps:size(Terms) of
  +        0 -> {ok, [], []};
  +        _ -> parse_config(maps:to_list(Terms), Spec)
  +    end.
   
   
   %% @doc Loads parsed application environment
  
positive.code:     {ok, [{atom(), term()}], [{atom(), term()}]}.
  
  parse_config([], Opts1, Opts2, _Spec) ->
      {ok, Opts1, Opts2};
  
  parse_config([{Key, Val}|Rest], Opts1, Opts2, Spec) when is_atom(Key) ->
      case maps:get(Key, Spec, not_found) of
  
negative.code: 
  
  -type parse_opt() ::
      any | atom | boolean | {enum, [atom()]} | list | proc |
      integer | pos_integer | nat_integer | {integer, none|integer(), none|integer()} |
      {integer, [integer()]} |
      string | binary | lower | upper |
      ip | host | host6 | {function, pos_integer()} |
      {'fun', 
          fun((atom(), term(), [{atom(), term()}]) -> 
              ok | {ok, term()} | {opts, [{atom(), term()}]} | error)
      } |
      unquote | path.
  
  -type parse_spec() :: #{ atom() => parse_opt()}.
  
  