anchor.diff:      | UseInterface f -> "UseInterface " ^ f
       | PreferInterface f -> "PreferInterface " ^ f
       | UseImplementation f -> "UseImplementation " ^ f
  -    | FriendImplementation f -> "UseImplementation " ^ f
  +    | FriendImplementation f -> "FriendImplementation " ^ f
   type dependences = list<dependence>
   let empty_dependences = []
   type dependence_graph = //maps file names to the modules it depends on
  
positive.code:         in
          (* Mutate the graph to mark the node as visited *)
          deps_add_dep dep_graph filename (direct_deps, Black);
          (* Also build the topological sort (Tarjan's algorithm). *)
          List.filter (function FriendImplementation _ -> true | _ -> false) direct_deps
          @all_friends,
          filename :: all_files
      and all_friend_deps dep_graph cycle all_friends filenames =
  
negative.code:     file_system_map:files_for_module_name;   //an abstraction of the file system
      cmd_line_files:list<file_name>;          //all command-line files
      all_files:list<file_name>;               //all files
      interfaces_with_inlining:list<module_name> //interfaces that use `inline_for_extraction` require inlining
  }
  let deps_try_find (Deps m) k = BU.smap_try_find m k
  let deps_add_dep (Deps m) k v =
    BU.smap_add m k v
  let deps_keys (Deps m) = BU.smap_keys m
  let deps_empty () = Deps (BU.smap_create 41)
  let mk_deps dg fs c a i = {
  