anchor.diff:              let uri = Uri url
               use client = createHttpClient (url,auth)
               let! tok = Async.CancellationToken
  -            let tokSource = System.Threading.CancellationTokenSource.CreateLinkedTokenSource(tok, timeoutTok)
  +            let tokSource = System.Threading.CancellationTokenSource.CreateLinkedTokenSource(tok, timeoutTok.Token)
   
               if notNullOrEmpty contentType then
                   addAcceptHeader client contentType
  
positive.code: 
      use timeoutTok = new System.Threading.CancellationTokenSource()
      timeoutTok.CancelAfter(60000)
      let shouldRetryTimeout exn =
          let exnNames = getExceptionNames exn
          iTry < nTries &&
              (timeoutTok.IsCancellationRequested && (exnNames |> List.contains "OperationCanceledException" ))
  
      async {
  
negative.code:             return SuccessResponse raw
          with
          | exn when shouldRetryTimeout exn ->
              Logging.traceWarnfn "Request to '%s' didn't respond after 60 seconds, trying again %i/%i" url iTry nTries
              return! _safeGetFromUrl(auth, url, contentType, iTry + 1, nTries)
          | :? HttpRequestException as req when (shouldRetry () && (req.InnerException :? System.Net.Sockets.SocketException)) ->
              Logging.traceWarnfn "Request to '%s' failed with '%s', trying again %i/%i" url req.Message iTry nTries
              return! _safeGetFromUrl(auth, url, contentType, iTry + 1, nTries)
          | :? OperationCanceledException as cancel when timeoutTok.IsCancellationRequested ->
              let msg = sprintf "Request to '%s' finally timed out after 60 seconds after several retries" url
              return raise (Exception(msg, cancel))
          | :? RequestFailedException as w ->
              match w.Info with
              | Some { StatusCode = HttpStatusCode.NotFound } -> return NotFound
  