anchor.diff:           load/2]).
   
   
  -read(VarName, Defaults) ->
  +% Read application configuration (either user_config or repo_config)
  +%
  +% Read an application configuration variable or return a default value
  +% if the variable is undefined. If the variable is set to {file, FileName},
  +% FileName will be read using read_config_file, otherwise the contents of
  +% the variable itself are returned
  +read(VarName, Default) ->
       case application:get_env(VarName) of
           {ok, {file, ConfigFile}} ->
               read_config_file(ConfigFile);
           {ok, ConfigMap} ->
               ConfigMap;
           undefined ->
  -            Defaults
  +            Default
       end.
   
   
  
positive.code:     {ok, lists:map(AddDefaultKeyId, RepoCfg)}.
  
  
  load_keys(KeyCfg, Repos, KeyLoader) ->
      try lists:map(KeyLoader, KeyCfg) of
          SpecifiedKeys ->
              ProcessDefaultKey = fun(R, {AccRepos, AccKeys}) ->
  
negative.code:             Keys = lists:map(KeyLoader, KeyCfg),
              {ok, RepoCfg, Keys};
          _ ->
              {ok, Repos} = process_repos(RepoCfg),
              process_keys(KeyCfg, Repos, KeyLoader)
      end.
  
  
  process_repos(RepoCfg) ->
      AddDefaultKeyId =
          fun(Name) when is_binary(Name) ->
                  #{domain => Name, keys => default};
  