anchor.diff:                          nomatch ->
                               ?WARN("~s has version ~p; requested regex was ~s\n",
                                     [AppFile, Vsn, VsnRegex]),
  -                            false
  +                            {false, version_mismatch}
                       end;
                   OtherApp ->
                       ?WARN("~s has application id ~p; expected ~p\n", [AppFile, OtherApp, App]),
  -                    false
  +                    {false, name_mismatch}
               end;
           false ->
               ?WARN("Expected ~s to be an app dir (containing ebin/*.app), but no .app found.\n",
                     [Path]),
  -            false
  +            {false, missing_app_file}
       end.
   
   use_source(Dep) ->
  
positive.code: is_app_available(App, VsnRegex) ->
      case code:lib_dir(App) of
          {error, bad_name} ->
              false;
          Path ->
              is_app_available(App, VsnRegex, Path)
      end.
  
negative.code:     case is_app_available(App, VsnRegex) of
          {true, AppDir} ->
              find_deps(Rest, {[Dep#dep { dir = AppDir } | Avail], Missing});
          {false, _} ->
              AppDir = filename:join(get_deps_dir(), Dep#dep.app),
              case is_app_available(App, VsnRegex, AppDir) of
                  {true, AppDir} ->
                      find_deps(Rest, {[Dep#dep { dir = AppDir } | Avail], Missing});
                  {false, _} ->
                      find_deps(Rest, {Avail, [Dep#dep { dir = AppDir } | Missing]})
              end
      end;
  