anchor.diff:      : bool =
       Option.isSome (implementation_of file_system_map key)
   
  -(*
  - * Public interface
  - *)
  -let cache_file_name (fn:string) : string =
  +
  +let cache_file_name_internal (fn:string) : string * bool =  //bool indicates if the cache file exists
     let cache_fn = fn ^ (if Options.lax () then ".checked.lax" else ".checked") in
     let mname = fn |> module_name_of_file in
     let should_already_be_there = mname |> Options.should_be_already_cached in
  
positive.code:           let files = List.map norm_path files in
            let files = List.map (fun s -> replace_chars s ' ' "\\ ") files in
            let files = String.concat "\\\n\t" files in
  
            //this one prints:
            //   a.fst.checked: b.fst.checked c.fsti.checked a.fsti
            Util.print3 "%s: %s \\\n\t%s\n\n"
                        (cache_file file_name)
                        norm_f
                        files;
  
  
negative.code:                 BU.remove_dups (fun x y -> x = y) (fst_files @ fst_files_from_iface),
                  false
          in
          let all_checked_fst_dep_files = all_fst_files_dep |> List.map (fun f -> f |> cache_file |> fst) in
          let _ = 
            if is_implementation file_name then (
              if Options.cmi()
              && widened
              then begin
                  Util.print3 "%s: %s \\\n\t%s\n\n"
                              (output_ml_file file_name)
                              (cache_file_name)
                              (String.concat " \\\n\t" all_checked_fst_dep_files);
                  Util.print3 "%s: %s \\\n\t%s\n\n"
                              (output_krml_file file_name)
                              (cache_file_name)
                              (String.concat " \\\n\t" all_checked_fst_dep_files)
              end
              else begin
                  Util.print2 "%s: %s \n\n"
                              (output_ml_file file_name)
                              (cache_file_name);
                  Util.print2 "%s: %s\n\n"
                              (output_krml_file file_name)
                              (cache_file_name)
              end;
              let cmx_files =
                  let extracted_fst_files =
  