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:       let suffix =
          String.substring k (String.length prefix) (String.length k - String.length prefix)
        in
        if implicit_open &&
           suffix |> smap_try_find original_map |> suffix_exists
        then ()
        else let filename = must (smap_try_find original_map k) in
             smap_add working_map suffix filename;
             found := true
    );
    !found
  
  
negative.code:     match sopt with
      | None -> "<None>"
      | Some s -> s in
    smap_iter m (fun k v -> BU.print2 "%s:%s\n" k (intf_and_impl_to_string v));
    BU.print_string "}\n"
  
  type color = | White | Gray | Black
  