anchor.diff:  			sin_config_parser:parse_config_file(ConfigFile),
   			"").
   
  -%%--------------------------------------------------------------------
   %% @doc
   %%  Return the flavor for the current build attempt
  -%% @end
  -%%--------------------------------------------------------------------
   -spec get_build_flavor(config()) -> string().
   get_build_flavor(Config) ->
       get_value(Config, "build.flavor", "development").
   
   %% @doc
   %%  Apply flavor changes to the config file.
  -%% @end
   -spec apply_flavors(config(), config()) -> config().
   apply_flavors(Config, Flavor) ->
       FilterFun = fun([$f, $l, $a, $v, $o, $r, $s, $. | Rest], Value, NConfig) ->
  
positive.code: 
  %% @doc
  %%  Parse the command line args into a spec that can be overridden.
  %% @end
  -spec parse_args(list()) -> config().
  parse_args(ArgList) when is_list(ArgList) ->
      parse_args(ArgList, dict:new()).
  
  %% @doc
  %%  Get a preexisting seed from the the seed config.
  %% @end
  -spec get_seed(string()) -> config().
  get_seed(ProjectDir) when is_list(ProjectDir) ->
      new(ProjectDir).
  
  %% @doc
  %%  Add a key to the config.
  %% @end
  -spec store(config(), key(), value()) -> config().
  store(Config, Key, Value) ->
      dict:store(Key, Value, Config).
  
  %% @doc
  %% Store a list of key value pairs into the config
  %% @end
  -spec store(config(), KeyValuePairs::[{string(), term()}]) ->
      config().
  store(Config, KeyValuePairs) when is_list(KeyValuePairs) ->
  
negative.code: %%  Convert any values taken from the config from a binary to a list.
  %%  ktuo treats lists a binaries but we would rather use lists in the
  %%  system.
  -spec convert_value(Value::any()) -> any().
  convert_value(Value) when is_list(Value) ->
      convert_list(Value, []);
  