anchor.diff:   *)
   
   (*
  - * Cache files could be loaded in two phases
  + * Cache files could be loaded in two steps
    * 
    * Initially the dependence analysis is just interested in the parsing data
  - *   and till that point we don't have the dependences sorted out
  - *
  - * So we read the checked file and mark the validity if tc data as Unknown
  + *   and till that point we don't have the dependences sorted out, because of
  + *   which we can't check the validity of tc data (since we need to check hashes
  + *   of direct dependences etc.)
  + *
  + * So in this step, we read the checked file and mark the validity if tc data as Unknown
    *
    * Later on, we have figured the complete dependence graph, and want to load
    *   the tc data
  
positive.code:                 else BU.smap_add mcache checked_fn (Unknown (deps_dig, dig, tc_result), Inr parsing_data)
  
  (*
   * Second phase for loading checked files, validates the tc data
   *)
  let load_checked_file_with_tc_result (deps:Dep.deps) (fn:string) (checked_fn:string) :unit =
    load_checked_file fn checked_fn;
    match BU.smap_try_find mcache checked_fn with
    | None -> failwith "Impossible, load_checked_file must add an entry to mcache"
    | Some (Invalid _, _)
    | Some (Valid _, _) -> ()
    | Some (Unknown (deps_dig, dig, tc_result), parsing_data) ->
      match hash_dependences deps fn with
      | Inl msg ->
        BU.smap_add mcache checked_fn (Invalid msg, parsing_data)
      | Inr deps_dig' ->
        if deps_dig = deps_dig'
        then BU.smap_add mcache checked_fn (Valid (dig, tc_result), parsing_data)
        else begin
          if Options.debug_any()
          then begin
  
negative.code:         Inl msg
        | Some (Invalid msg, _) -> Inl msg
        | Some (Valid (dig, _), _) -> Inr dig
        | Some (Unknown _, _) ->
          failwith (BU.format2
                      "Impossible: unknown entry in the cache for dependence %s of module %s"
                      fn module_name)
      in
      match digest with
      | Inl msg -> Inl msg
  