anchor.diff:                  try 
                       let result = JsonConvert.DeserializeObject<string []>(data) |> Array.toSeq
                       return result
  -                with _ -> let! result = getAllVersionsFromNugetOData(getUrlContents, nugetURL, package)
  +                with _ -> verbosefn "exn when deserialising data '%s'" data
  +                          let! result = getAllVersionsFromNugetOData(getUrlContents, nugetURL, package)
                             return result
               with exn -> 
                   return! failwithf "Could not get data from %s for package %s.%s Message: %s" nugetURL package 
  
positive.code: let getAllVersionsFromNugetODataWithFilter (getUrlContents, nugetURL, package) = 
      // we cannot cache this
      let url = sprintf "%s/Packages?$filter=Id eq '%s'" nugetURL package
      followODataLink getUrlContents url
  
  /// Gets versions of the given package via OData via /FindPackagesById()?id='packageId'.
  let getAllVersionsFromNugetOData (getUrlContents, nugetURL, package) = 
      async { 
          // we cannot cache this
          try 
              let url = sprintf "%s/FindPackagesById()?id='%s'" nugetURL package
              return! followODataLink getUrlContents url
          with _ -> return! getAllVersionsFromNugetODataWithFilter (getUrlContents, nugetURL, package)
      }
  
negative.code: let getAllVersionsFromNuGet2(auth,nugetURL,package) = 
      // we cannot cache this
      async { 
          let url = sprintf "%s/package-versions/%s?includePrerelease=true" nugetURL package
          verbosefn "getAllVersionsFromNuGet2 from url '%s'" url
          let! raw = safeGetFromUrl(auth, url)
          let getUrlContents url = getFromUrl(auth, url)
          match raw with
          | None -> let! result = getAllVersionsFromNugetOData(getUrlContents, nugetURL, package)
  