anchor.diff:          let start = cursor |> Option.defaultValue 1
           let extras = PhotoSearchExtras.Description ||| PhotoSearchExtras.Tags ||| PhotoSearchExtras.DateUploaded ||| PhotoSearchExtras.OriginalFormat
           
  -        let tcs = new TaskCompletionSource<PhotoCollection>()
  -        flickr.PeopleGetPhotosAsync("me", extras, start, take |> min 500, fun r -> if r.HasError then tcs.SetException r.Error else tcs.SetResult r.Result)
  -        let! posts = tcs.Task |> Async.AwaitTask
  +        let! posts = flickrCall (fun callback -> flickr.PeopleGetPhotosAsync("me", extras, start, take |> min 500, callback))
           return {
               Posts = posts |> Seq.map FlickrPostWrapper |> Seq.map (fun w -> w :> IPostWrapper)
               Next = posts.Page + 1
  
positive.code: type FlickrSourceWrapper(flickr: Flickr) =
      inherit SourceWrapper<int>()
  
      let mutable user: FoundUser = null
  
      let getUser = async {
          if isNull user then
              let tcs = new TaskCompletionSource<Auth>()
              flickr.AuthOAuthCheckTokenAsync(fun r -> if r.HasError then tcs.SetException r.Error else tcs.SetResult r.Result)
              let! oauth = tcs.Task |> Async.AwaitTask
              user <- oauth.User
          return user
      }
  
negative.code: 
      override this.GetUserIcon size = async {
          let! user = getUser
          
          let! person = flickrCall (fun callback -> flickr.PeopleGetInfoAsync(user.UserId, callback))
          return if person.IconServer = "0"
              then "https://www.flickr.com/images/buddyicon.gif"
              else sprintf "http://farm%s.staticflickr.com/%s/buddyicons/%s.jpg" person.IconFarm person.IconServer person.UserId
  