anchor.diff:          (* Mutate the graph to mark the node as visited *)
           deps_add_dep dep_graph filename (direct_deps, Black);
           if Options.debug_any()
  -        then BU.print1 "Adding %s" filename;
  +        then BU.print1 "Adding %s\n" filename;
           (* Also build the topological sort (Tarjan's algorithm). *)
           List.collect
             (function | FriendImplementation m -> [m]
  
positive.code:         all_friends, all_files
      | White ->
          if Options.debug_any()
          then BU.print2 "Visiting %s: direct deps are %s"
                  filename
                  (String.concat ", " (List.map dep_to_string direct_deps));
          (* Unvisited. Compute. *)
  
negative.code:            order
      *)
      if Options.debug_any()
      then BU.print_string "==============Phase1==================\n";
      let friends, all_files_0 =
          all_friend_deps (dep_graph_copy dep_graph) [] ([], []) root_files
      in
      if Options.debug_any()
      then BU.print1 "Phase1 complete: all_files = %s\n" (String.concat ", " all_files_0);
      let widened = BU.mk_ref false in
      let widen_deps friends deps =
          deps |> List.map (fun d ->
  