anchor.diff:              waitForUnlocked 0
               File.WriteAllText(fileName, string p.Id)
           with
  -        | exn when exn.Message = "timeout" -> 
  -            failwithf "Could not acquire lock to %s.%sThe process timed out." fileName Environment.NewLine
  -        | exn -> 
  +        | exn when exn.Message = "timeout" ->
  +            failwithf "Could not acquire lock to '%s'.%sThe process timed out." fileName Environment.NewLine
  +        | exn ->
               if trials > 0 then 
                   let trials = trials - 1
                   tracefn "Could not acquire lock to %s.%s%s%sTrials left: %d." fileName Environment.NewLine exn.Message Environment.NewLine trials
                   acquireLock startTime timeOut trials
               else
  -                failwithf "Could not acquire lock to %s.%s%s" fileName Environment.NewLine exn.Message
  +                raise <| Exception(sprintf "Could not acquire lock to '%s'." fileName, exn)
       
       let rec releaseLock() =
           try
  
positive.code: open System.Threading
  open System.Collections.Generic
  
  let innerText (exn:Exception) =
      match exn.InnerException with
      | null -> ""
      | exn -> Environment.NewLine + " Details: " + exn.Message
  
  /// [omit]
  let downloadFromUrl (auth:Auth option, url : string) (filePath: string) =
      async {
  
negative.code:             return! client.DownloadStringTaskAsync (Uri url) |> Async.AwaitTask
          with
          | exn -> 
              return raise <| Exception(sprintf "Could not retrieve data from '%s'" url, exn)
  
      }
  
  