anchor.diff:  let private getCatalogPageDirectory(basePath:String,item:String) =
       let hostName = getHostSpecificFileName item
       let cachePath = Path.Combine(basePath, "catalog", hostName)
  -    let directory = new DirectoryInfo(cachePath)
  +    let directory = DirectoryInfo(cachePath)
       if directory.Exists |> not then
           traceWarnfn "Create page cache \"%s\" -- long delay expected" directory.FullName
           directory.Create()
       directory;
   
   let private getPageFileContent(pageFileName:String) =
  -    let pageFileInfo = new FileInfo(pageFileName+".gz")
  +    let pageFileInfo = FileInfo(pageFileName+".gz")
       if pageFileInfo.Exists then
           try
               // File.ReadAllText(pageFileInfo.FullName)
  
positive.code: // Cache for nuget indices of sources
  type ResourceIndex = Map<NugetV3ResourceType,string>
  let private nugetV3Resources = System.Collections.Concurrent.ConcurrentDictionary<NuGetV3Source,Task<ResourceIndex>>()
  let private rnd = new Random()
  let getNuGetV3Resource (source : NuGetV3Source) (resourceType : NugetV3ResourceType) : Async<string> =
      let key = source
      let getResourcesRaw () =
  
negative.code:             let rawData =
                  match rawData with
                  | Unauthorized ->
                      raise (Exception(sprintf "Could not load resources from '%s': Unauthorized (401)" source.Url))
                  | NotFound ->
                      raise (Exception(sprintf "Could not load resources (404) from '%s'" source.Url))
                  | UnknownError e ->
                      raise (Exception(sprintf "Could not load resources from '%s'" source.Url, e.SourceException))
                  | SuccessResponse x -> x
  
              let json = JsonConvert.DeserializeObject<NugetV3SourceRootJSON>(rawData)
  