anchor.diff:      ]
   
       let shouldRetry exn = isMonoRuntime && iTry < nTries && (getExceptionNames exn |> List.contains "MonoBtlsException")
  -    
  +
       async {
           try
               let uri = Uri url
  
positive.code:     not (Object.ReferenceEquals(Type.GetType "Mono.Runtime", null))
  
  /// Determines if the current system is an Unix system
  let isUnix = 
  #if NETSTANDARD1_6 || NETSTANDARD2_0
      System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(
          System.Runtime.InteropServices.OSPlatform.Linux) || 
      System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(
          System.Runtime.InteropServices.OSPlatform.OSX)
  #else
  
negative.code:         if i = 1 then Some first
          else None
  
      /// Unzip a seq by mapping the elements that satisfy the predicate
      /// into the first seq and mapping the elements that fail to satisfy the predicate
      /// into the second seq
      let partitionAndChoose predicate choosefn1 choosefn2 sqs =
          (([],[]),sqs)
          ||> Seq.fold (fun (xs,ys) elem ->
              if predicate elem then
                  match choosefn1 elem with
                  | Some x ->  (x::xs,ys)
                  | None -> xs,ys
              else
                  match choosefn2 elem with
                  | Some y -> xs,y::ys
                  | None -> xs,ys
          ) |> fun (xs,ys) ->
              List.rev xs :> seq<_>, List.rev ys :> seq<_>
  