anchor.diff:              | Some node -> node
               | None -> failwithf "unable to parse data from %s" url
   
  -        let currentPage = 
  -            feed |> getNode "entry" |> optGetNode "properties" |> optGetNode "Version" 
  -            |> Option.map (fun node -> node.InnerText)
  -            |> Option.toList
  -
  -        return 
  +        let readEntryVersion = optGetNode "properties" >> optGetNode "Version"
  +
  +        let entriesVersions = 
  +            feed
  +            |> getNodes "entry"
  +            |> List.choose (fun entry -> Some entry |> readEntryVersion |> Option.map (fun node -> node.InnerText))
  +
  +        let linksVersions = 
               feed 
               |> getNodes "link"
               |> List.filter (fun node -> node |> getAttribute "rel" = Some "next")
  
positive.code:             |> Async.Parallel
              |> Async.RunSynchronously
              |> Seq.concat
              |> Seq.append currentPage
      }
  
  /// Gets versions of the given package via OData via /Packages?$filter=Id eq 'packageId'
  
negative.code:     async { 
          // we cannot cache this
          try 
              let url = sprintf "%s/FindPackagesById()?id='%s'" nugetURL package
              return! followODataLink auth url
          with _ -> return! getAllVersionsFromNugetODataWithFilter (auth, nugetURL, package)
      }
  
  