anchor.diff:  try_handle_resource_files(AppInfo, AppDir, [{Type, AppSrcFile} | _Rest], Validate)
       when Type =:= app_src orelse Type =:= script ->
       try_handle_app_src_file(AppInfo, AppDir, AppSrcFile, Validate);
  -try_handle_resource_files(AppInfo, _AppDir, [{mix_exs, _AppSrcFile} | _Rest], _Validate) ->
  -    {true, rebar_app_info:project_type(AppInfo, mix)};
  +try_handle_resource_files(AppInfo, AppDir, [{mix_exs, _MixExs} | Rest], Validate) ->
  +    %% prefer a rebar3 buildable app if both are found
  +    case try_handle_resource_files(AppInfo, AppDir, Rest, Validate) of
  +        false ->
  +            {true, rebar_app_info:project_type(AppInfo, mix)};
  +        {true, _}=Result ->
  +            Result
  +    end;
   try_handle_resource_files(_AppInfo, _AppDir, [], _Validate) ->
       false.
   
  
positive.code:     ]),
  
      EbinPath = filename:join([LibDir, "ebin", "*.app"]),
      MixExsPath = filename:join([LibDir, "src", "mix.exs"]),
  
      lists:usort(lists:foldl(fun(Path, Acc) ->
                                  Files = filelib:wildcard(rebar_utils:to_list(Path)),
  
negative.code:                    end || SrcDir <- SrcDirs],
      ResourceFiles = [
          {app, filelib:wildcard(filename:join([AppDir, "ebin", "*.app"]))},
          {mix_exs, filelib:wildcard(filename:join([AppDir, "mix.exs"]))}
          | [{extension_type(Ext),
              lists:append([filelib:wildcard(filename:join([AppDir, SrcDir, "*" ++ Ext]))
                            || SrcDir <- NormSrcDirs])}
  