anchor.diff:                      let mutable readSinceLastMeasure = 0L
   
                       let requestMsg = new HttpRequestMessage(HttpMethod.Get, downloadUri)
  -                    let! responseMsg = client.SendAsync(requestMsg) |> Async.AwaitTask
  +                    let! responseMsg = client.SendAsync(requestMsg, HttpCompletionOption.ResponseHeadersRead, t.Token) |> Async.AwaitTask
                       match responseMsg.StatusCode with
                       | HttpStatusCode.OK -> ()
                       | statusCode -> failwithf "HTTP status code was %d - %O" (int statusCode) statusCode
   
                       let! httpResponseStream = responseMsg.Content.ReadAsStreamAsync() |> Async.AwaitTask
  +                    httpResponseStream.ReadTimeout <- Timeout.Infinite;
   
                       let bufferSize = 1024 * 10
                       let buffer : byte [] = Array.zeroCreate bufferSize
  
positive.code:                     let mutable pos = 0L
  
                      let length = try Some httpResponseStream.Length with :? System.NotSupportedException -> None
                      let! tok = Async.CancellationToken
                      while !bytesRead <> 0 do
                          if printProgress && lastSpeedMeasure.Elapsed > TimeSpan.FromSeconds(10.) then
                              // report speed and progress
  
negative.code: module Paket.NuGet
  
  // Type forwards, this way we only need to open "Paket.NuGet" thoughout paket code (others are implementation detail)
  type UnparsedPackageFile = Paket.NuGetCache.UnparsedPackageFile
  