anchor.diff:              F2 = fun({tree,arity_qualifier,_,
                           {arity_qualifier,{tree,atom,_,behaviour_info},
                               {tree,integer,_,1}}}, _) ->
  -                    2;
  +                    behaviour;
                   ({tree,arity_qualifier,_,
                           {arity_qualifier,{tree,atom,_,parse_transform},
                               {tree,integer,_,2}}}, _) ->
  -                    1;
  +                    parse_transform;
                   (_, Acc) ->
                       Acc
               end,
  
positive.code:                     Acc
              end,
  
              lists:foldl(F, 10, Trees)
      end.
  
  %%
  
negative.code:     RestErls  = [Source || Source <- gather_src(SrcDirs, []) ++ MoreSources,
                             lists:member(Source, FirstErls) == false],
  
      % Split RestErls so that parse_transforms and behaviours are instead added
      % to erl_first_files, parse transforms first.
      % This should probably be somewhat combined with inspect_epp
      [ParseTransforms, Behaviours, OtherErls] = lists:foldl(fun(F, [A, B, C]) ->
                  case compile_priority(F) of
                      parse_transform ->
                          [[F | A], B, C];
                      behaviour ->
                          [A, [F | B], C];
                      _ ->
                          [A, B, [F | C]]
                  end
          end, [[], [], []], RestErls),
  
      NewFirstErls = FirstErls ++ ParseTransforms ++ Behaviours,
  
      %% Make sure that ebin/ exists and is on the path
      ok = filelib:ensure_dir(filename:join("ebin", "dummy.beam")),
      CurrPath = code:get_path(),
      code:add_path("ebin"),
      rebar_base_compiler:run(Config, NewFirstErls, OtherErls,
                              fun(S, C) -> internal_erl_compile(S, C, OutDir,
                                                                ErlOpts)
                              end),
  