anchor.diff:      let digest = FStar.Parser.Dep.hash_dependences env.dep_graph fn in
       match digest with
       | Some hashes ->
  -      BU.save_value_to_file cache_file (hashes, m, modul_iface_opt, mii)
  +      //cache_version_number should always be the first field here
  +      BU.save_value_to_file cache_file (cache_version_number, hashes, m, modul_iface_opt, mii)
       | _ ->
         FStar.Errors.log_issue
           (FStar.Range.mk_range fn (FStar.Range.mk_pos 0 0)
  
positive.code:             match BU.load_value_from_file cache_file with
              | None ->
                fail "Corrupt"
              | Some (digest, tcmod, tcmod_iface_opt, mii) ->
                  match FStar.Parser.Dep.hash_dependences env.dep_graph fn with
                  | Some digest' ->
                      if digest=digest'
                      then Some (tcmod, tcmod_iface_opt, mii)
                      else begin
                          if Options.debug_any()
                          then begin
                                  BU.print4 "Expected (%s) hashes:\n%s\n\nGot (%s) hashes:\n\t%s\n"
                                          (BU.string_of_int (List.length digest'))
                                          (FStar.Parser.Dep.print_digest digest')
                                          (BU.string_of_int (List.length digest))
                                          (FStar.Parser.Dep.print_digest digest);
                              if List.length digest = List.length digest'
                              then List.iter2
                                      (fun (x,y) (x', y') ->
                                              if x<>x' || y<>y'
                                              then BU.print2 "Differ at: Expected %s\n Got %s\n"
                                                  (FStar.Parser.Dep.print_digest [(x,y)])
                                                  (FStar.Parser.Dep.print_digest [(x',y')]))
                                      digest
                                      digest'
                              end;
                          fail "Stale"
                      end
                  | _ ->
                  fail "Stale"
            else fail "Absent"
  
  let store_module_to_cache env fn (m:modul) (modul_iface_opt:option<modul>) (mii:DsEnv.module_inclusion_info) =
  
negative.code: module TcTerm  = FStar.TypeChecker.TcTerm
  module BU      = FStar.Util
  module Dep     = FStar.Parser.Dep
  
  (* we write this version number to the cache files, and detect when loading the cache that the version number is same *)
  let cache_version_number = 1
  
  let module_or_interface_name m = m.is_interface, m.name
  
  