anchor.diff:  %% recompile a file, since when the file itself doesn't change we don't check its
   %% dependencies which might change.
   init_erlcinfo(InclDirs, Erls) ->
  -    G = digraph:new(),
  +    G = digraph:new([acyclic]),
       try restore_erlcinfo(G, InclDirs)
       catch
           _:_ ->
  
positive.code:     true = rebar_utils:cleanup_code_path(CurrPath),
      ok.
  
  %%
  %% Return all .erl files from a list of files
  %%
  erls(Files) ->
      [Erl || Erl <- Files, filename:extension(Erl) =:= ".erl"].
  
  %%
  %% Return a list without duplicates while preserving order
  %%
  ulist(L) ->
      ulist(L, []).
  
  ulist([H|T], Acc) ->
      case lists:member(H, T) of
          true ->
              ulist(T, Acc);
          false ->
              ulist(T, [H|Acc])
      end;
  ulist([], Acc) ->
      lists:reverse(Acc).
  
  %%
  %% Merge two lists without duplicates while preserving order
  %%
  uo_merge(L1, L2) ->
      lists:foldl(fun(E, Acc) -> u_add_element(E, Acc) end, ulist(L1), L2).
  
  u_add_element(Elem, [Elem|_]=Set) -> Set;
  u_add_element(Elem, [E1|Set])     -> [E1|u_add_element(Elem, Set)];
  u_add_element(Elem, [])           -> [Elem].
  
  -spec needs_compile(file:filename(), file:filename(),
                      [string()]) -> boolean().
  
negative.code: get_parents(G, Source) ->
      %% Return all files which the Source depends upon.
      digraph_utils:reachable_neighbours([Source], G).
  
  -spec internal_erl_compile(rebar_config:config(), file:filename(),
                             file:filename(), list(),
  