anchor.diff:          Path ->
               {ok, AppData} = file:consult(Path),
               [{application, App, Config}] = AppData,
  -            start_app(App, Config, Type)
  +            Callback(App, Config, Type)
       end.
   
   lookup_app(App) ->
  
positive.code: %% -----------------------------------------------------------------------------
  
  -module(appstart).
  -export([start/1, start/2]).
  
  -define(FIND_ERROR_PREDICATE, fun({error, _}) -> true; (_) -> false end).
  
  
negative.code: start(App, _) when App =:= kernel, App =:= stdlib ->
      ok;
  start(App, Type) when is_atom(App) ->
      start_it(App, Type, fun start_app/3).
  
  start_deps(App) ->
      start_it(App, ignored, fun start_deps/3).
  
  start_deps(_, Config, _) ->
      start_app_deps(Config).
  
  start_app_deps(Config) ->
      Apps = [start(A) || A <- proplists:get_value(applications, Config, [])],
      case lists:any(?FIND_ERROR_PREDICATE, Apps) of
          true ->
              {error, {dependents, lists:filter(?FIND_ERROR_PREDICATE, Apps)}};
          false ->
              Apps
      end.
  
  start_app(App, Config, Type) ->
      case start_app_deps(Config) of
          {error, _}=Error ->
              Error;
          _ -> application:start(App, Type)
      end.
  
  start_it(App, Type, Callback) ->
      case lookup_app(App) of
          already_loaded ->
              already_loaded;
  