anchor.diff:          case HasTests of
               true ->
                   ebt__do([ebt__error_m ||
  -                    compile(Target, TestDir, EbinTestDir, Config),
  +                    compile(Target, TestDir, EbinTestDir, Config, {tests, [["test/*.erl"]]}),
                       ebt__xl_file:copy_filtered(TestDir,
                           ebt_config:value(Target, Config, resources, []), EbinTestDir)
                   ]);
  
positive.code:     ebt__do([ebt__error_m ||
          AppProdDir <- ebt_config:app_outdir(production, Dir, Config),
          EbinProdDir <- return(AppProdDir ++ "/ebin"),
          compile(Target, SrcDir, EbinProdDir, Config),
          AppSpec <- ebt_applib:load(SrcDir),
          update_app(AppSpec, EbinProdDir, Config),
          ebt__xl_file:copy_if_exists(Dir ++ "/src", AppProdDir),
  
negative.code:         ebt__xl_file:write_term(Filename, ebt_applib:update(AppSpec, [{modules, Modules}, {vsn, Version}]))
      ]).
  
  -spec(compile(atom(), file:name(), file:name(), ebt_config:config(), {atom(), [[string()]]}) -> ebt__error_m:monad(ok)).
  compile(Target, SrcDir, OutDir, Config, {Key, Defaults}) when is_atom(Target) ->
      ebt__do([ebt__error_m ||
          io:format("compiling ~s to ~s~n", [SrcDir, OutDir]),
          Includes <- return([{i, Lib} || Lib <- ebt_config:value(libraries, Config, [])]),
  