anchor.diff:   *  At that point, the cache is updated to either Valid or Invalid w.r.t. the tc data
    *)
   type tc_result_t =
  -  | Unknown of (list<(string * string)>) * string * tc_result  //deps string, digest of this file, tc_result
  +  | Unknown of (list<(string * string)>) * tc_result  //deps as in the checked_file_entry, tc_result
     | Invalid of string  //reason why this is invalid
  -  | Valid   of string * tc_result  //digest, tc_result
  +  | Valid   of string * tc_result  //digest of the checked file, tc_result
   
   (*
    * The cache of checked files
  
positive.code:   | None -> failwith "Impossible, load_checked_file must add an entry to mcache"
    | Some (Invalid _, _)
    | Some (Valid _, _) -> ()  //already marked Valid or Invalid
    | 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)
  
negative.code:  *)
  type checked_file_entry =
    int *                      //cache version number
    
    list<(string * string)> *  //list of (file_name * digest) of direct dependences
                               //file_name is name of the source file and
                               //digest is that of the corresponding checked file
                               //except when the entries are for the current .fst and .fsti,
                               //digest is that of the source file
    
    string *                   //digest of this source file
                               //also present in the list above, but handy to have it here
    
    Parser.Dep.parsing_data *  //parsing data for this file
    
    tc_result                  //typechecking result, including the smt encoding
  
  (*
  