anchor.diff:    | VerifyUserList
     | VerifyFigureItOut
   
  -type files_for_module_name = smap<(option<string> * option<string>)>
  +type intf_and_impl = option<string> * option<string>
  +
  +type files_for_module_name = smap<intf_and_impl>
  +
  +let intf_and_impl_to_string ii =
  +  match ii with
  +  | None, None -> "<None>, <None>"
  +  | Some intf, None -> intf
  +  | None, Some impl -> impl
  +  | Some intf, Some impl -> intf ^ ", " ^ impl
  +
   
   let files_for_module_name_to_string (m:files_for_module_name) =
     BU.print_string "Printing the file system map {\n";
  
positive.code:     match sopt with
      | None -> "<None>"
      | Some s -> s in
    smap_iter m (fun k (intf, impl) -> BU.print3 "%s:(%s, %s)\n" k (str_opt_to_string intf) (str_opt_to_string impl));
    BU.print_string "}\n"
  
  type color = | White | Gray | Black
  
negative.code:       let suffix =
          String.substring k (String.length prefix) (String.length k - String.length prefix)
        in
  
        begin
          let suffix_filename = smap_try_find original_map suffix in
          if implicit_open &&
             suffix_exists suffix_filename
          then let str = suffix_filename |> must |> intf_and_impl_to_string in
               FStar.Errors.log_issue Range.dummyRange
                 (Errors.Warning_UnexpectedFile,
                  BU.format4 "Implicitly opening %s namespace shadows (%s -> %s), rename %s to \
                    avoid conflicts" prefix suffix str str)
        end;
  
        let filename = must (smap_try_find original_map k) in
        smap_add working_map suffix filename;
        found := true
    );
    !found
  
  