anchor.diff:              let fst_files =
                   f_deps
                   |> List.map (fun dep ->
  -                   file_of_dep_aux false file_system_map all_cmd_line_files (impl_dep dep))
  +                   file_of_dep_aux false deps.file_system_map deps.cmd_line_files (impl_dep dep))
               in
               let fst_files_from_iface =
                   match iface_deps with
                   | None -> []
                   | Some iface_deps ->
  -                    let id = iface_deps |> List.map (file_of_dep_aux false file_system_map all_cmd_line_files) in
  +                    let id = iface_deps |> List.map (file_of_dep_aux false deps.file_system_map deps.cmd_line_files) in
                       id
               in
               BU.remove_dups (fun x y -> x = y) (fst_files @ fst_files_from_iface)
  
positive.code:    * immutable from there on. *)
    let file_system_map = build_map all_cmd_line_files in
  
    (* discover: Do a graph traversal starting from file_name
     *           filling in dep_graph with the dependences *)
    let rec discover_one (file_name:file_name) =
      if deps_try_find dep_graph file_name = None then
      begin
        let deps, mo_roots =
          match BU.smap_try_find !collect_one_cache file_name with
          | Some cached -> cached
          | None -> collect_one file_system_map file_name in
        let deps =
            let module_name = lowercase_module_name file_name in
            if is_implementation file_name
  
negative.code:           //   a.fst: b.fst c.fsti a.fsti
            Util.print2 "%s: %s\n\n" f (String.concat " " files))
  
  let print_raw (deps:deps) =
      let (Deps deps) = deps.dep_graph in
        smap_fold deps (fun k (dep, _) out ->
          BU.format2 "%s -> [\n\t%s\n] " k (List.map dep_to_string dep |> String.concat ";\n\t") :: out) []
        |> String.concat ";;\n"
  