anchor.diff:  
           // Amortize readers weakly - this is enough that all the type providers in this DLL will at least share
           // resources when all instantiated at the same time.
  -        let readersWeakCache = ConcurrentDictionary<(string * string), WeakReference>()
  +        let readersWeakCache = ConcurrentDictionary<(string * DateTime * string), WeakReference>()
   
           type File with 
               static member ReadBinaryChunk (fileName: string, start, len) = 
  
positive.code: #else
              File.Delete assemblyFileName
  #endif
              let bytes = reader.Bytes
  
              // Use a real Reflection Load when running in F# Interactive
              if isHostedExecution then 
  
negative.code:                 buffer
  
          let ILModuleReaderAfterReadingAllBytes  (fileName:string, ilGlobals: ILGlobals) =
              let timeStamp = File.GetLastWriteTimeUtc(fileName)
              let key = (fileName, timeStamp, ilGlobals.systemRuntimeScopeRef.QualifiedName)
              match readersWeakCache.TryGetValue (key) with
              | true, CacheValue mr2 ->
                  mr2 // throw away the bytes we just read and recycle the existing ILModuleReader
              | _ ->
                  let bytes = File.ReadAllBytes fileName
                  let is = ByteFile(bytes)
                  let pe = PEReader(fileName, is)
                  let mdchunk = File.ReadBinaryChunk (fileName, pe.MetadataPhysLoc, pe.MetadataSize)
  