anchor.diff:  %% Internal functions
   %% ===================================================================
   
  -update_pkg_deps(Profile, Pkgs, Packages, Update, Seen, State) ->
  +update_pkg_deps(Profile, Pkgs, Packages, Upgrade, Seen, State) ->
       %% Create app_info record for each pkg dep
       DepsDir = rebar_dir:deps_dir(State),
       {Solved, _, State1}
  
positive.code: 
  -spec handle_deps(atom(), rebar_state:t(), list(), list() | boolean()) ->
                           {ok, [rebar_app_info:t()], rebar_state:t()} | {error, string()}.
  handle_deps(Profile, State, Deps, Update) when is_boolean(Update) ->
      handle_deps(Profile, State, Deps, Update, []);
  handle_deps(Profile, State, Deps, Locks) when is_list(Locks) ->
      Update = rebar_state:get(State, upgrade, false),
      handle_deps(Profile, State, Deps, Update, Locks).
  
  -spec handle_deps(atom(), rebar_state:t(), list(), boolean() | {true, binary(), integer()}, list())
                   -> {ok, [rebar_app_info:t()], rebar_state:t()} | {error, string()}.
  handle_deps(_Profile, State, [], _, _) ->
      {ok, [], State};
  handle_deps(Profile, State, Deps, Update, Locks) ->
      %% Read in package index and dep graph
      {Packages, Graph} = rebar_packages:get_packages(State),
      %% Split source deps from pkg deps, needed to keep backwards compatibility
  
negative.code: 
  -spec maybe_fetch(rebar_app_info:t(), boolean() | {true, binary(), integer()},
                    sets:set(binary())) -> boolean().
  maybe_fetch(AppInfo, Upgrade, Seen) ->
      AppDir = ec_cnv:to_list(rebar_app_info:dir(AppInfo)),
      Apps = rebar_app_discover:find_apps(["_checkouts"], all),
      case rebar_app_utils:find(rebar_app_info:name(AppInfo), Apps) of
  