anchor.diff:  type dependence_graph = //maps file names to the modules it depends on
        | Deps of smap<(dependences * color)>
   type deps =
  -     | Mk of dependence_graph * files_for_module_name
  -
  +     | Mk of dependence_graph      //dependences of the entire project, not just those reachable from the command line
  +           * files_for_module_name //an abstraction of the file system
  +           * list<file_name>       //all command-line files
   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 module_name_of_dep = function
  +    | UseInterface m
       | PreferInterface m
       | UseImplementation m -> m
   
  
positive.code:   (* A map from lowercase module names (e.g. [a.b.c]) to the corresponding
     * filenames (e.g. [/where/to/find/A.B.C.fst]). Consider this map
     * immutable from there on. *)
    let file_system_map = build_map filenames in
  
    (* Debug. *)
    //  List.iter (fun k -> BU.print_string (file_names_of_key k)) (smap_keys m);
  
    (* discover: Do a graph traversal starting from file_name
     *           filling in dep_graph with the dependences *)
  
negative.code:   | Some "make" ->
        print_make deps
    | Some "graph" ->
        let (Mk(deps, _, _)) = deps in
        print_graph deps
    | Some _ ->
        raise (Err "unknown tool for --dep\n")
    | None ->
        assert false