anchor.diff:  
   
   %% @doc Loads parsed application environment
  --spec load_env(term(), atom(), map()|list(), syntax()) ->
  +-spec load_env(term(), atom(), syntax(), map()|list()) ->
       ok | {error, term()}.
   
  -load_env(Mod, App, Defaults, Syntax) ->
  +load_env(Mod, App, Syntax, Defaults) ->
       AppEnv = application:get_all_env(App),
  -    Env1 = nklib_util:defaults(AppEnv, nklib_util:to_list(Defaults)),
  -    case parse_config(Env1, Syntax) of
  +    case parse_config(AppEnv, Syntax, #{defaults=>Defaults}) of
           {ok, Opts, _} ->
               lists:foreach(fun({K,V}) -> put(Mod, K, V) end, Opts),
  -            ok;
  +            {ok, Opts};
           {error, Error} ->
               {error, Error}
       end.
  
positive.code: find_config(Key, Val, Rest, OK, NoOK, Syntax, Opts) ->
      case maps:get(Key, Syntax, not_found) of
          not_found ->
              parse_config(Rest, OK, [{nklib_util:to_binary(Key), Val}|NoOK], Syntax, Opts);
          Fun when is_function(Fun, 3) ->
              FunOpts = Opts#{ok=>OK, no_ok=>NoOK},
              case catch Fun(Key, Val, FunOpts) of
  
negative.code:         {ok, AtomKey} ->
              find_config(AtomKey, Val, Rest, OK, NoOK, Syntax, Opts);
          error ->
              parse_config(Rest, OK, [{Key, Val}|NoOK], Syntax, Opts)
      end;
  
  parse_config([Key|Rest], OK, NoOK, Syntax, Opts) ->
  